home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / PInterfaces / Movies.p < prev    next >
Text File  |  1996-05-01  |  94KB  |  2,771 lines

  1. {
  2.      File:        Movies.p
  3.  
  4.      Contains:    QuickTime Interfaces.
  5.  
  6.      Version:    Technology:    QuickTime 2.1
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT Movies;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __MOVIES__}
  28. {$SETC __MOVIES__ := 1}
  29.  
  30. {$I+}
  31. {$SETC MoviesIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __QUICKDRAW__}
  35. {$I Quickdraw.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __ALIASES__}
  38. {$I Aliases.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __EVENTS__}
  41. {$I Events.p}
  42. {$ENDC}
  43. {$IFC UNDEFINED __MENUS__}
  44. {$I Menus.p}
  45. {$ENDC}
  46. {$IFC UNDEFINED __COMPONENTS__}
  47. {$I Components.p}
  48. {$ENDC}
  49. {$IFC UNDEFINED __IMAGECOMPRESSION__}
  50. {$I ImageCompression.p}
  51. {$ENDC}
  52.  
  53. {$PUSH}
  54. {$ALIGN MAC68K}
  55. {$LibExport+}
  56.  
  57. {$IFC FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE }
  58. {   "kFix1" is defined in FixMath as "fixed1"   }
  59. {  error codes are in Errors.[haa]  }
  60. {  gestalt codes are in Gestalt.[hpa]  }
  61.  
  62. CONST
  63.     MovieFileType                = 'MooV';
  64.  
  65.     MediaHandlerType            = 'mhlr';
  66.     DataHandlerType                = 'dhlr';
  67.  
  68.     VideoMediaType                = 'vide';
  69.     SoundMediaType                = 'soun';
  70.     TextMediaType                = 'text';
  71.     BaseMediaType                = 'gnrc';
  72.     MPEGMediaType                = 'MPEG';
  73.     MusicMediaType                = 'musi';
  74.     TimeCodeMediaType            = 'tmcd';
  75.     SpriteMediaType                = 'sprt';
  76.     HandleDataHandlerSubType    = 'hndl';
  77.  
  78.     VisualMediaCharacteristic    = 'eyes';
  79.     AudioMediaCharacteristic    = 'ears';
  80.  
  81.     DoTheRightThing                = 0;
  82.  
  83.  
  84. TYPE
  85.     MovieRecordPtr = ^MovieRecord;
  86.     MovieRecord = RECORD
  87.         data:                    ARRAY [0..0] OF LONGINT;
  88.     END;
  89.  
  90.     Movie                                = ^MovieRecord;
  91.     TrackRecordPtr = ^TrackRecord;
  92.     TrackRecord = RECORD
  93.         data:                    ARRAY [0..0] OF LONGINT;
  94.     END;
  95.  
  96.     Track                                = ^TrackRecord;
  97.     MediaRecordPtr = ^MediaRecord;
  98.     MediaRecord = RECORD
  99.         data:                    ARRAY [0..0] OF LONGINT;
  100.     END;
  101.  
  102.     Media                                = ^MediaRecord;
  103.     UserDataRecordPtr = ^UserDataRecord;
  104.     UserDataRecord = RECORD
  105.         data:                    ARRAY [0..0] OF LONGINT;
  106.     END;
  107.  
  108.     UserData                            = ^UserDataRecord;
  109.     TrackEditStateRecordPtr = ^TrackEditStateRecord;
  110.     TrackEditStateRecord = RECORD
  111.         data:                    ARRAY [0..0] OF LONGINT;
  112.     END;
  113.  
  114.     TrackEditState                        = ^TrackEditStateRecord;
  115.     MovieEditStateRecordPtr = ^MovieEditStateRecord;
  116.     MovieEditStateRecord = RECORD
  117.         data:                    ARRAY [0..0] OF LONGINT;
  118.     END;
  119.  
  120.     MovieEditState                        = ^MovieEditStateRecord;
  121.     SampleDescriptionPtr = ^SampleDescription;
  122.     SampleDescription = RECORD
  123.         descSize:                LONGINT;
  124.         dataFormat:                LONGINT;
  125.         resvd1:                    LONGINT;
  126.         resvd2:                    INTEGER;
  127.         dataRefIndex:            INTEGER;
  128.     END;
  129.  
  130.     SampleDescriptionHandle                = ^SampleDescriptionPtr;
  131.     SpriteWorldRecordPtr = ^SpriteWorldRecord;
  132.     SpriteWorldRecord = RECORD
  133.         data:                    ARRAY [0..0] OF LONGINT;
  134.     END;
  135.  
  136.     SpriteWorld                            = ^SpriteWorldRecord;
  137.     SpriteRecordPtr = ^SpriteRecord;
  138.     SpriteRecord = RECORD
  139.         data:                    ARRAY [0..0] OF LONGINT;
  140.     END;
  141.  
  142.     Sprite                                = SpriteRecord;
  143.     SpritePtr                             = ^Sprite;
  144.     QTAtomContainer                        = Handle;
  145.     QTAtom                                = LONGINT;
  146.     QTAtomType                            = LONGINT;
  147.     QTAtomID                            = LONGINT;
  148.     SoundDescriptionPtr = ^SoundDescription;
  149.     SoundDescription = RECORD
  150.         descSize:                LONGINT;                                {  total size of SoundDescription including extra data  }
  151.         dataFormat:                LONGINT;                                {    }
  152.         resvd1:                    LONGINT;                                {  reserved for apple use  }
  153.         resvd2:                    INTEGER;
  154.         dataRefIndex:            INTEGER;
  155.         version:                INTEGER;                                {  which version is this data  }
  156.         revlevel:                INTEGER;                                {  what version of that codec did this  }
  157.         vendor:                    LONGINT;                                {  whose  codec compressed this data  }
  158.         numChannels:            INTEGER;                                {  number of channels of sound  }
  159.         sampleSize:                INTEGER;                                {  number of bits per sample  }
  160.         compressionID:            INTEGER;                                {  sound compression used, 0 if none  }
  161.         packetSize:                INTEGER;                                {  packet size for compression, 0 if no compression  }
  162.         sampleRate:                Fixed;                                    {  sample rate sound is captured at  }
  163.     END;
  164.  
  165.     SoundDescriptionHandle                = ^SoundDescriptionPtr;
  166.     TextDescriptionPtr = ^TextDescription;
  167.     TextDescription = RECORD
  168.         descSize:                LONGINT;                                {  Total size of TextDescription }
  169.         dataFormat:                LONGINT;                                {  'text' }
  170.         resvd1:                    LONGINT;
  171.         resvd2:                    INTEGER;
  172.         dataRefIndex:            INTEGER;
  173.         displayFlags:            LONGINT;                                {  see enum below for flag values }
  174.         textJustification:        LONGINT;                                {  Can be: teCenter,teFlush -Default,-Right,-Left }
  175.         bgColor:                RGBColor;                                {  Background color }
  176.         defaultTextBox:            Rect;                                    {  Location to place the text within the track bounds }
  177.         defaultStyle:            ScrpSTElement;                            {  Default style (struct defined in TextEdit.h) }
  178.         defaultFontName:        SInt8;                                    {  Font Name (pascal string - struct extended to fit)  }
  179.     END;
  180.  
  181.     TextDescriptionHandle                = ^TextDescriptionPtr;
  182.     DataReferenceRecordPtr = ^DataReferenceRecord;
  183.     DataReferenceRecord = RECORD
  184.         dataRefType:            OSType;
  185.         dataRef:                Handle;
  186.     END;
  187.  
  188.     DataReferencePtr                    = ^DataReferenceRecord;
  189. {
  190. --------------------------
  191.   Music Sample Description
  192. --------------------------
  193. }
  194.     MusicDescriptionPtr = ^MusicDescription;
  195.     MusicDescription = RECORD
  196.         descSize:                LONGINT;
  197.         dataFormat:                LONGINT;                                {  'musi'  }
  198.         resvd1:                    LONGINT;
  199.         resvd2:                    INTEGER;
  200.         dataRefIndex:            INTEGER;
  201.         musicFlags:                LONGINT;
  202.         headerData:                ARRAY [0..0] OF LONGINT;                {  variable size!  }
  203.     END;
  204.  
  205.     MusicDescriptionHandle                = ^MusicDescriptionPtr;
  206.  
  207. CONST
  208.     dfDontDisplay                = $01;                            {  Don't display the text }
  209.     dfDontAutoScale                = $02;                            {  Don't scale text as track bounds grows or shrinks }
  210.     dfClipToTextBox                = $04;                            {  Clip update to the textbox }
  211.     dfUseMovieBGColor            = $08;                            {  Set text background to movie's background color }
  212.     dfShrinkTextBoxToFit        = $10;                            {  Compute minimum box to fit the sample }
  213.     dfScrollIn                    = $20;                            {  Scroll text in until last of text is in view  }
  214.     dfScrollOut                    = $40;                            {  Scroll text out until last of text is gone (if both set, scroll in then out) }
  215.     dfHorizScroll                = $80;                            {  Scroll text horizontally (otherwise it's vertical) }
  216.     dfReverseScroll                = $0100;                        {  vert: scroll down rather than up; horiz: scroll backwards (justfication dependent) }
  217.     dfContinuousScroll            = $0200;                        {  new samples cause previous samples to scroll out  }
  218.     dfFlowHoriz                    = $0400;                        {  horiz scroll text flows in textbox rather than extend to right  }
  219.     dfDropShadow                = $1000;                        {  display text with a drop shadow  }
  220.     dfAntiAlias                    = $2000;                        {  attempt to display text anti aliased }
  221.     dfKeyedText                    = $4000;                        {  key the text over background }
  222.     dfInverseHilite                = $8000;                        {  Use inverse hiliting rather than using hilite color }
  223.  
  224.     searchTextDontGoToFoundTime    = $00010000;
  225.     searchTextDontHiliteFoundText = $00020000;
  226.     searchTextOneTrackOnly        = $00040000;
  227.     searchTextEnabledTracksOnly    = $00080000;
  228.  
  229. {  progress messages  }
  230.     movieProgressOpen            = 0;
  231.     movieProgressUpdatePercent    = 1;
  232.     movieProgressClose            = 2;
  233.  
  234. {  progress operations  }
  235.     progressOpFlatten            = 1;
  236.     progressOpInsertTrackSegment = 2;
  237.     progressOpInsertMovieSegment = 3;
  238.     progressOpPaste                = 4;
  239.     progressOpAddMovieSelection    = 5;
  240.     progressOpCopy                = 6;
  241.     progressOpCut                = 7;
  242.     progressOpLoadMovieIntoRam    = 8;
  243.     progressOpLoadTrackIntoRam    = 9;
  244.     progressOpLoadMediaIntoRam    = 10;
  245.     progressOpImportMovie        = 11;
  246.     progressOpExportMovie        = 12;
  247.  
  248.     mediaQualityDraft            = $0000;
  249.     mediaQualityNormal            = $0040;
  250.     mediaQualityBetter            = $0080;
  251.     mediaQualityBest            = $00C0;
  252.  
  253.  
  254. TYPE
  255.     MovieRgnCoverProcPtr = ProcPtr;  { FUNCTION MovieRgnCover(theMovie: Movie; changedRgn: RgnHandle; refcon: LONGINT): OSErr; }
  256.  
  257.     MovieProgressProcPtr = ProcPtr;  { FUNCTION MovieProgress(theMovie: Movie; message: INTEGER; whatOperation: INTEGER; percentDone: Fixed; refcon: LONGINT): OSErr; }
  258.  
  259.     MovieDrawingCompleteProcPtr = ProcPtr;  { FUNCTION MovieDrawingComplete(theMovie: Movie; refCon: LONGINT): OSErr; }
  260.  
  261.     TrackTransferProcPtr = ProcPtr;  { FUNCTION TrackTransfer(t: Track; refCon: LONGINT): OSErr; }
  262.  
  263.     GetMovieProcPtr = ProcPtr;  { FUNCTION GetMovie(offset: LONGINT; size: LONGINT; dataPtr: UNIV Ptr; refCon: UNIV Ptr): OSErr; }
  264.  
  265.     MoviePreviewCallOutProcPtr = ProcPtr;  { FUNCTION MoviePreviewCallOut(refcon: LONGINT): BOOLEAN; }
  266.  
  267.     MoviesErrorProcPtr = ProcPtr;  { PROCEDURE MoviesError(theErr: OSErr; refcon: LONGINT); }
  268.  
  269.     TextMediaProcPtr = ProcPtr;  { FUNCTION TextMedia(theText: Handle; theMovie: Movie; VAR displayFlag: INTEGER; refcon: LONGINT): OSErr; }
  270.  
  271.     MovieRgnCoverUPP = UniversalProcPtr;
  272.     MovieProgressUPP = UniversalProcPtr;
  273.     MovieDrawingCompleteUPP = UniversalProcPtr;
  274.     TrackTransferUPP = UniversalProcPtr;
  275.     GetMovieUPP = UniversalProcPtr;
  276.     MoviePreviewCallOutUPP = UniversalProcPtr;
  277.     MoviesErrorUPP = UniversalProcPtr;
  278.     TextMediaUPP = UniversalProcPtr;
  279.     MediaHandler                        = ComponentInstance;
  280.     DataHandler                            = ComponentInstance;
  281.     MediaHandlerComponent                = Component;
  282.     DataHandlerComponent                = Component;
  283.     HandlerError                        = ComponentResult;
  284. {  TimeBase equates  }
  285.     TimeValue                            = LONGINT;
  286.     TimeScale                            = LONGINT;
  287.     CompTimeValue                        = wide;
  288.     CompTimeValuePtr                     = ^CompTimeValue;
  289.  
  290. CONST
  291.     loopTimeBase                = 1;
  292.     palindromeLoopTimeBase        = 2;
  293.     maintainTimeBaseZero        = 4;
  294.  
  295.  
  296. TYPE
  297.     TimeBaseFlags                        = LONGINT;
  298.     TimeBaseRecordPtr = ^TimeBaseRecord;
  299.     TimeBaseRecord = RECORD
  300.         data:                    ARRAY [0..0] OF LONGINT;
  301.     END;
  302.  
  303.     TimeBase                            = ^TimeBaseRecord;
  304.     CallBackRecordPtr = ^CallBackRecord;
  305.     CallBackRecord = RECORD
  306.         data:                    ARRAY [0..0] OF LONGINT;
  307.     END;
  308.  
  309.     QTCallBack                            = ^CallBackRecord;
  310.     TimeRecordPtr = ^TimeRecord;
  311.     TimeRecord = RECORD
  312.         value:                    CompTimeValue;                            {  units  }
  313.         scale:                    TimeScale;                                {  units per second  }
  314.         base:                    TimeBase;
  315.     END;
  316.  
  317. {  CallBack equates  }
  318.  
  319. CONST
  320.     triggerTimeFwd                = $0001;                        {  when curTime exceeds triggerTime going forward  }
  321.     triggerTimeBwd                = $0002;                        {  when curTime exceeds triggerTime going backwards  }
  322.     triggerTimeEither            = $0003;                        {  when curTime exceeds triggerTime going either direction  }
  323.     triggerRateLT                = $0004;                        {  when rate changes to less than trigger value  }
  324.     triggerRateGT                = $0008;                        {  when rate changes to greater than trigger value  }
  325.     triggerRateEqual            = $0010;                        {  when rate changes to equal trigger value  }
  326.     triggerRateLTE                = $0014;
  327.     triggerRateGTE                = $0018;
  328.     triggerRateNotEqual            = $001C;
  329.     triggerRateChange            = 0;
  330.     triggerAtStart                = $0001;
  331.     triggerAtStop                = $0002;
  332.  
  333.  
  334. TYPE
  335.     QTCallBackFlags                        = INTEGER;
  336.  
  337. CONST
  338.     timeBaseBeforeStartTime        = 1;
  339.     timeBaseAfterStopTime        = 2;
  340.  
  341.  
  342. TYPE
  343.     TimeBaseStatus                        = LONGINT;
  344.  
  345. CONST
  346.     callBackAtTime                = 1;
  347.     callBackAtRate                = 2;
  348.     callBackAtTimeJump            = 3;
  349.     callBackAtExtremes            = 4;
  350.     callBackAtInterrupt            = $8000;
  351.     callBackAtDeferredTask        = $4000;
  352.  
  353.  
  354. TYPE
  355.     QTCallBackType                        = INTEGER;
  356.     QTCallBackProcPtr = ProcPtr;  { PROCEDURE QTCallBack(cb: QTCallBack; refCon: LONGINT); }
  357.  
  358.     QTCallBackUPP = UniversalProcPtr;
  359.  
  360. CONST
  361.     qtcbNeedsRateChanges        = 1;                            {  wants to know about rate changes  }
  362.     qtcbNeedsTimeChanges        = 2;                            {  wants to know about time changes  }
  363.     qtcbNeedsStartStopChanges    = 4;                            {  wants to know when TimeBase start/stop is changed }
  364.  
  365.  
  366. TYPE
  367.     QTCallBackHeaderPtr = ^QTCallBackHeader;
  368.     QTCallBackHeader = RECORD
  369.         callBackFlags:            LONGINT;
  370.         reserved1:                LONGINT;
  371.         qtPrivate:                ARRAY [0..39] OF SInt8;
  372.     END;
  373.  
  374.     QTSyncTaskProcPtr = ProcPtr;  { PROCEDURE QTSyncTask(task: UNIV Ptr); }
  375.  
  376.     QTSyncTaskUPP = UniversalProcPtr;
  377.     QTSyncTaskRecordPtr = ^QTSyncTaskRecord;
  378.     QTSyncTaskRecord = RECORD
  379.         qLink:                    Ptr;
  380.         proc:                    QTSyncTaskUPP;
  381.     END;
  382.  
  383.     QTSyncTaskPtr                        = ^QTSyncTaskRecord;
  384.  
  385. CONST
  386.     keepInRam                    = $01;                            {  load and make non-purgable }
  387.     unkeepInRam                    = $02;                            {  mark as purgable }
  388.     flushFromRam                = $04;                            {  empty those handles }
  389.     loadForwardTrackEdits        = $08;                            {     load track edits into ram for playing forward }
  390.     loadBackwardTrackEdits        = $10;                            {     load track edits into ram for playing in reverse }
  391.  
  392.     newMovieActive                = $01;
  393.     newMovieDontResolveDataRefs    = $02;
  394.     newMovieDontAskUnresolvedDataRefs = $04;
  395.     newMovieDontAutoAlternates    = $08;
  396.  
  397. {  track usage bits  }
  398.     trackUsageInMovie            = $02;
  399.     trackUsageInPreview            = $04;
  400.     trackUsageInPoster            = $08;
  401.  
  402. {  Add/GetMediaSample flags  }
  403.     mediaSampleNotSync            = $01;                            {  sample is not a sync sample (eg. is frame differenced  }
  404.     mediaSampleShadowSync        = $02;                            {  sample is a shadow sync  }
  405.  
  406.     pasteInParallel                = 1;
  407.     showUserSettingsDialog        = 2;
  408.     movieToFileOnlyExport        = 4;
  409.     movieFileSpecValid            = 8;
  410.  
  411.     nextTimeMediaSample            = $01;
  412.     nextTimeMediaEdit            = $02;
  413.     nextTimeTrackEdit            = $04;
  414.     nextTimeSyncSample            = $08;
  415.     nextTimeStep                = $10;
  416.     nextTimeEdgeOK                = $4000;
  417.     nextTimeIgnoreActiveSegment    = $8000;
  418.  
  419.  
  420. TYPE
  421.     nextTimeFlagsEnum                    = INTEGER;
  422.  
  423. CONST
  424.     createMovieFileDeleteCurFile = $80000000;
  425.     createMovieFileDontCreateMovie = $40000000;
  426.     createMovieFileDontOpenFile    = $20000000;
  427.  
  428.  
  429. TYPE
  430.     createMovieFileFlagsEnum            = LONGINT;
  431.  
  432. CONST
  433.     flattenAddMovieToDataFork    = $00000001;
  434.     flattenActiveTracksOnly        = $00000004;
  435.     flattenDontInterleaveFlatten = $00000008;
  436.     flattenFSSpecPtrIsDataRefRecordPtr = $00000010;
  437.  
  438.  
  439. TYPE
  440.     movieFlattenFlagsEnum                = LONGINT;
  441.  
  442. CONST
  443.     movieInDataForkResID        = -1;                            {  magic res ID  }
  444.  
  445.     mcTopLeftMovie                = $01;                            {  usually centered  }
  446.     mcScaleMovieToFit            = $02;                            {  usually only scales down  }
  447.     mcWithBadge                    = $04;                            {  give me a badge  }
  448.     mcNotVisible                = $08;                            {  don't show controller  }
  449.     mcWithFrame                    = $10;                            {  gimme a frame  }
  450.  
  451.     movieScrapDontZeroScrap        = $01;
  452.     movieScrapOnlyPutMovie        = $02;
  453.  
  454.     dataRefSelfReference        = $01;
  455.     dataRefWasNotResolved        = $02;
  456.  
  457.  
  458. TYPE
  459.     dataRefAttributesFlags                = LONGINT;
  460.  
  461. CONST
  462.     hintsScrubMode                = $01;                            {  mask == && (if flags == scrub on, flags != scrub off)  }
  463.     hintsLoop                    = $02;
  464.     hintsDontPurge                = $04;
  465.     hintsUseScreenBuffer        = $20;
  466.     hintsAllowInterlace            = $40;
  467.     hintsUseSoundInterp            = $80;
  468.     hintsHighQuality            = $0100;                        {  slooooow  }
  469.     hintsPalindrome                = $0200;
  470.     hintsInactive                = $0800;
  471.  
  472.  
  473. TYPE
  474.     playHintsEnum                        = LONGINT;
  475.  
  476. CONST
  477.     mediaHandlerFlagBaseClient    = 1;
  478.  
  479.  
  480. TYPE
  481.     mediaHandlerFlagsEnum                = LONGINT;
  482.  
  483. CONST
  484.     movieTrackMediaType            = $01;
  485.     movieTrackCharacteristic    = $02;
  486.     movieTrackEnabledOnly        = $04;
  487.  
  488.  
  489. TYPE
  490.     SampleReferenceRecordPtr = ^SampleReferenceRecord;
  491.     SampleReferenceRecord = RECORD
  492.         dataOffset:                LONGINT;
  493.         dataSize:                LONGINT;
  494.         durationPerSample:        TimeValue;
  495.         numberOfSamples:        LONGINT;
  496.         sampleFlags:            INTEGER;
  497.     END;
  498.  
  499.     SampleReferencePtr                    = ^SampleReferenceRecord;
  500. {
  501. ************************
  502. * Initialization Routines 
  503. *************************
  504. }
  505. FUNCTION EnterMovies: OSErr;
  506.     {$IFC NOT GENERATINGCFM}
  507.     INLINE $7001, $AAAA;
  508.     {$ENDC}
  509. PROCEDURE ExitMovies;
  510.     {$IFC NOT GENERATINGCFM}
  511.     INLINE $7002, $AAAA;
  512.     {$ENDC}
  513. {
  514. ************************
  515. * Error Routines 
  516. *************************
  517. }
  518. FUNCTION GetMoviesError: OSErr;
  519.     {$IFC NOT GENERATINGCFM}
  520.     INLINE $7003, $AAAA;
  521.     {$ENDC}
  522. PROCEDURE ClearMoviesStickyError;
  523.     {$IFC NOT GENERATINGCFM}
  524.     INLINE $303C, $00DE, $AAAA;
  525.     {$ENDC}
  526. FUNCTION GetMoviesStickyError: OSErr;
  527.     {$IFC NOT GENERATINGCFM}
  528.     INLINE $7004, $AAAA;
  529.     {$ENDC}
  530. PROCEDURE SetMoviesErrorProc(errProc: MoviesErrorUPP; refcon: LONGINT);
  531.     {$IFC NOT GENERATINGCFM}
  532.     INLINE $303C, $00EF, $AAAA;
  533.     {$ENDC}
  534. {
  535. ************************
  536. * Idle Routines 
  537. *************************
  538. }
  539. PROCEDURE MoviesTask(theMovie: Movie; maxMilliSecToUse: LONGINT);
  540.     {$IFC NOT GENERATINGCFM}
  541.     INLINE $7005, $AAAA;
  542.     {$ENDC}
  543. FUNCTION PrerollMovie(theMovie: Movie; time: TimeValue; Rate: Fixed): OSErr;
  544.     {$IFC NOT GENERATINGCFM}
  545.     INLINE $7006, $AAAA;
  546.     {$ENDC}
  547. FUNCTION LoadMovieIntoRam(theMovie: Movie; time: TimeValue; duration: TimeValue; flags: LONGINT): OSErr;
  548.     {$IFC NOT GENERATINGCFM}
  549.     INLINE $7007, $AAAA;
  550.     {$ENDC}
  551. FUNCTION LoadTrackIntoRam(theTrack: Track; time: TimeValue; duration: TimeValue; flags: LONGINT): OSErr;
  552.     {$IFC NOT GENERATINGCFM}
  553.     INLINE $303C, $016E, $AAAA;
  554.     {$ENDC}
  555. FUNCTION LoadMediaIntoRam(theMedia: Media; time: TimeValue; duration: TimeValue; flags: LONGINT): OSErr;
  556.     {$IFC NOT GENERATINGCFM}
  557.     INLINE $7008, $AAAA;
  558.     {$ENDC}
  559. PROCEDURE SetMovieActive(theMovie: Movie; active: BOOLEAN);
  560.     {$IFC NOT GENERATINGCFM}
  561.     INLINE $7009, $AAAA;
  562.     {$ENDC}
  563. FUNCTION GetMovieActive(theMovie: Movie): BOOLEAN;
  564.     {$IFC NOT GENERATINGCFM}
  565.     INLINE $700A, $AAAA;
  566.     {$ENDC}
  567. {
  568. ************************
  569. * calls for playing movies, previews, posters
  570. *************************
  571. }
  572. PROCEDURE StartMovie(theMovie: Movie);
  573.     {$IFC NOT GENERATINGCFM}
  574.     INLINE $700B, $AAAA;
  575.     {$ENDC}
  576. PROCEDURE StopMovie(theMovie: Movie);
  577.     {$IFC NOT GENERATINGCFM}
  578.     INLINE $700C, $AAAA;
  579.     {$ENDC}
  580. PROCEDURE GoToBeginningOfMovie(theMovie: Movie);
  581.     {$IFC NOT GENERATINGCFM}
  582.     INLINE $700D, $AAAA;
  583.     {$ENDC}
  584. PROCEDURE GoToEndOfMovie(theMovie: Movie);
  585.     {$IFC NOT GENERATINGCFM}
  586.     INLINE $700E, $AAAA;
  587.     {$ENDC}
  588. FUNCTION IsMovieDone(theMovie: Movie): BOOLEAN;
  589.     {$IFC NOT GENERATINGCFM}
  590.     INLINE $303C, $00DD, $AAAA;
  591.     {$ENDC}
  592. FUNCTION GetMoviePreviewMode(theMovie: Movie): BOOLEAN;
  593.     {$IFC NOT GENERATINGCFM}
  594.     INLINE $700F, $AAAA;
  595.     {$ENDC}
  596. PROCEDURE SetMoviePreviewMode(theMovie: Movie; usePreview: BOOLEAN);
  597.     {$IFC NOT GENERATINGCFM}
  598.     INLINE $7010, $AAAA;
  599.     {$ENDC}
  600. PROCEDURE ShowMoviePoster(theMovie: Movie);
  601.     {$IFC NOT GENERATINGCFM}
  602.     INLINE $7011, $AAAA;
  603.     {$ENDC}
  604. PROCEDURE PlayMoviePreview(theMovie: Movie; callOutProc: MoviePreviewCallOutUPP; refcon: LONGINT);
  605.     {$IFC NOT GENERATINGCFM}
  606.     INLINE $303C, $00F2, $AAAA;
  607.     {$ENDC}
  608. {
  609. ************************
  610. * calls for controlling movies & tracks which are playing
  611. *************************
  612. }
  613. FUNCTION GetMovieTimeBase(theMovie: Movie): TimeBase;
  614.     {$IFC NOT GENERATINGCFM}
  615.     INLINE $7012, $AAAA;
  616.     {$ENDC}
  617. PROCEDURE SetMovieMasterTimeBase(theMovie: Movie; tb: TimeBase; {CONST}VAR slaveZero: TimeRecord);
  618.     {$IFC NOT GENERATINGCFM}
  619.     INLINE $303C, $0167, $AAAA;
  620.     {$ENDC}
  621. PROCEDURE SetMovieMasterClock(theMovie: Movie; clockMeister: Component; {CONST}VAR slaveZero: TimeRecord);
  622.     {$IFC NOT GENERATINGCFM}
  623.     INLINE $303C, $0168, $AAAA;
  624.     {$ENDC}
  625. PROCEDURE GetMovieGWorld(theMovie: Movie; VAR port: CGrafPtr; VAR gdh: GDHandle);
  626.     {$IFC NOT GENERATINGCFM}
  627.     INLINE $7015, $AAAA;
  628.     {$ENDC}
  629. PROCEDURE SetMovieGWorld(theMovie: Movie; port: CGrafPtr; gdh: GDHandle);
  630.     {$IFC NOT GENERATINGCFM}
  631.     INLINE $7016, $AAAA;
  632.     {$ENDC}
  633.  
  634. CONST
  635.     movieDrawingCallWhenChanged    = 0;
  636.     movieDrawingCallAlways        = 1;
  637.  
  638. PROCEDURE SetMovieDrawingCompleteProc(theMovie: Movie; flags: LONGINT; proc: MovieDrawingCompleteUPP; refCon: LONGINT);
  639.     {$IFC NOT GENERATINGCFM}
  640.     INLINE $303C, $01DE, $AAAA;
  641.     {$ENDC}
  642. FUNCTION GetNextTrackForCompositing(theMovie: Movie; theTrack: Track): Track;
  643.     {$IFC NOT GENERATINGCFM}
  644.     INLINE $303C, $01FA, $AAAA;
  645.     {$ENDC}
  646. FUNCTION GetPrevTrackForCompositing(theMovie: Movie; theTrack: Track): Track;
  647.     {$IFC NOT GENERATINGCFM}
  648.     INLINE $303C, $01FB, $AAAA;
  649.     {$ENDC}
  650. PROCEDURE SetTrackGWorld(theTrack: Track; port: CGrafPtr; gdh: GDHandle; proc: TrackTransferUPP; refCon: LONGINT);
  651.     {$IFC NOT GENERATINGCFM}
  652.     INLINE $303C, $009D, $AAAA;
  653.     {$ENDC}
  654. FUNCTION GetMoviePict(theMovie: Movie; time: TimeValue): PicHandle;
  655.     {$IFC NOT GENERATINGCFM}
  656.     INLINE $701D, $AAAA;
  657.     {$ENDC}
  658. FUNCTION GetTrackPict(theTrack: Track; time: TimeValue): PicHandle;
  659.     {$IFC NOT GENERATINGCFM}
  660.     INLINE $701E, $AAAA;
  661.     {$ENDC}
  662. FUNCTION GetMoviePosterPict(theMovie: Movie): PicHandle;
  663.     {$IFC NOT GENERATINGCFM}
  664.     INLINE $303C, $00F7, $AAAA;
  665.     {$ENDC}
  666. {  called between Begin & EndUpdate  }
  667. FUNCTION UpdateMovie(theMovie: Movie): OSErr;
  668.     {$IFC NOT GENERATINGCFM}
  669.     INLINE $701F, $AAAA;
  670.     {$ENDC}
  671. FUNCTION InvalidateMovieRegion(theMovie: Movie; invalidRgn: RgnHandle): OSErr;
  672.     {$IFC NOT GENERATINGCFM}
  673.     INLINE $303C, $022A, $AAAA;
  674.     {$ENDC}
  675. { *** spatial movie routines *** }
  676. PROCEDURE GetMovieBox(theMovie: Movie; VAR boxRect: Rect);
  677.     {$IFC NOT GENERATINGCFM}
  678.     INLINE $303C, $00F9, $AAAA;
  679.     {$ENDC}
  680. PROCEDURE SetMovieBox(theMovie: Movie; {CONST}VAR boxRect: Rect);
  681.     {$IFC NOT GENERATINGCFM}
  682.     INLINE $303C, $00FA, $AAAA;
  683.     {$ENDC}
  684. { * movie display clip  }
  685. FUNCTION GetMovieDisplayClipRgn(theMovie: Movie): RgnHandle;
  686.     {$IFC NOT GENERATINGCFM}
  687.     INLINE $303C, $00FC, $AAAA;
  688.     {$ENDC}
  689. PROCEDURE SetMovieDisplayClipRgn(theMovie: Movie; theClip: RgnHandle);
  690.     {$IFC NOT GENERATINGCFM}
  691.     INLINE $303C, $00FD, $AAAA;
  692.     {$ENDC}
  693. { * movie src clip  }
  694. FUNCTION GetMovieClipRgn(theMovie: Movie): RgnHandle;
  695.     {$IFC NOT GENERATINGCFM}
  696.     INLINE $303C, $0100, $AAAA;
  697.     {$ENDC}
  698. PROCEDURE SetMovieClipRgn(theMovie: Movie; theClip: RgnHandle);
  699.     {$IFC NOT GENERATINGCFM}
  700.     INLINE $303C, $0101, $AAAA;
  701.     {$ENDC}
  702. { * track src clip  }
  703. FUNCTION GetTrackClipRgn(theTrack: Track): RgnHandle;
  704.     {$IFC NOT GENERATINGCFM}
  705.     INLINE $303C, $0102, $AAAA;
  706.     {$ENDC}
  707. PROCEDURE SetTrackClipRgn(theTrack: Track; theClip: RgnHandle);
  708.     {$IFC NOT GENERATINGCFM}
  709.     INLINE $303C, $0103, $AAAA;
  710.     {$ENDC}
  711. { * bounds in display space (not clipped by display clip)  }
  712. FUNCTION GetMovieDisplayBoundsRgn(theMovie: Movie): RgnHandle;
  713.     {$IFC NOT GENERATINGCFM}
  714.     INLINE $303C, $00FB, $AAAA;
  715.     {$ENDC}
  716. FUNCTION GetTrackDisplayBoundsRgn(theTrack: Track): RgnHandle;
  717.     {$IFC NOT GENERATINGCFM}
  718.     INLINE $303C, $0112, $AAAA;
  719.     {$ENDC}
  720. { * bounds in movie space  }
  721. FUNCTION GetMovieBoundsRgn(theMovie: Movie): RgnHandle;
  722.     {$IFC NOT GENERATINGCFM}
  723.     INLINE $303C, $00FE, $AAAA;
  724.     {$ENDC}
  725. FUNCTION GetTrackMovieBoundsRgn(theTrack: Track): RgnHandle;
  726.     {$IFC NOT GENERATINGCFM}
  727.     INLINE $303C, $00FF, $AAAA;
  728.     {$ENDC}
  729. { * bounds in track space  }
  730. FUNCTION GetTrackBoundsRgn(theTrack: Track): RgnHandle;
  731.     {$IFC NOT GENERATINGCFM}
  732.     INLINE $303C, $0111, $AAAA;
  733.     {$ENDC}
  734. { * mattes - always in track space  }
  735. FUNCTION GetTrackMatte(theTrack: Track): PixMapHandle;
  736.     {$IFC NOT GENERATINGCFM}
  737.     INLINE $303C, $0115, $AAAA;
  738.     {$ENDC}
  739. PROCEDURE SetTrackMatte(theTrack: Track; theMatte: PixMapHandle);
  740.     {$IFC NOT GENERATINGCFM}
  741.     INLINE $303C, $0116, $AAAA;
  742.     {$ENDC}
  743. PROCEDURE DisposeMatte(theMatte: PixMapHandle);
  744.     {$IFC NOT GENERATINGCFM}
  745.     INLINE $303C, $014A, $AAAA;
  746.     {$ENDC}
  747. {
  748. ************************
  749. * calls for getting/saving movies
  750. *************************
  751. }
  752. FUNCTION NewMovie(flags: LONGINT): Movie;
  753.     {$IFC NOT GENERATINGCFM}
  754.     INLINE $303C, $0187, $AAAA;
  755.     {$ENDC}
  756. FUNCTION PutMovieIntoHandle(theMovie: Movie; publicMovie: Handle): OSErr;
  757.     {$IFC NOT GENERATINGCFM}
  758.     INLINE $7022, $AAAA;
  759.     {$ENDC}
  760. FUNCTION PutMovieIntoDataFork(theMovie: Movie; fRefNum: INTEGER; offset: LONGINT; maxSize: LONGINT): OSErr;
  761.     {$IFC NOT GENERATINGCFM}
  762.     INLINE $303C, $01B4, $AAAA;
  763.     {$ENDC}
  764. PROCEDURE DisposeMovie(theMovie: Movie);
  765.     {$IFC NOT GENERATINGCFM}
  766.     INLINE $7023, $AAAA;
  767.     {$ENDC}
  768. {
  769. ************************
  770. * Movie State Routines
  771. *************************
  772. }
  773. FUNCTION GetMovieCreationTime(theMovie: Movie): LONGINT;
  774.     {$IFC NOT GENERATINGCFM}
  775.     INLINE $7026, $AAAA;
  776.     {$ENDC}
  777. FUNCTION GetMovieModificationTime(theMovie: Movie): LONGINT;
  778.     {$IFC NOT GENERATINGCFM}
  779.     INLINE $7027, $AAAA;
  780.     {$ENDC}
  781. FUNCTION GetMovieTimeScale(theMovie: Movie): TimeScale;
  782.     {$IFC NOT GENERATINGCFM}
  783.     INLINE $7029, $AAAA;
  784.     {$ENDC}
  785. PROCEDURE SetMovieTimeScale(theMovie: Movie; timeScale: TimeScale);
  786.     {$IFC NOT GENERATINGCFM}
  787.     INLINE $702A, $AAAA;
  788.     {$ENDC}
  789. FUNCTION GetMovieDuration(theMovie: Movie): TimeValue;
  790.     {$IFC NOT GENERATINGCFM}
  791.     INLINE $702B, $AAAA;
  792.     {$ENDC}
  793. FUNCTION GetMovieRate(theMovie: Movie): Fixed;
  794.     {$IFC NOT GENERATINGCFM}
  795.     INLINE $702C, $AAAA;
  796.     {$ENDC}
  797. PROCEDURE SetMovieRate(theMovie: Movie; rate: Fixed);
  798.     {$IFC NOT GENERATINGCFM}
  799.     INLINE $702D, $AAAA;
  800.     {$ENDC}
  801. FUNCTION GetMoviePreferredRate(theMovie: Movie): Fixed;
  802.     {$IFC NOT GENERATINGCFM}
  803.     INLINE $303C, $00F3, $AAAA;
  804.     {$ENDC}
  805. PROCEDURE SetMoviePreferredRate(theMovie: Movie; rate: Fixed);
  806.     {$IFC NOT GENERATINGCFM}
  807.     INLINE $303C, $00F4, $AAAA;
  808.     {$ENDC}
  809. FUNCTION GetMoviePreferredVolume(theMovie: Movie): INTEGER;
  810.     {$IFC NOT GENERATINGCFM}
  811.     INLINE $303C, $00F5, $AAAA;
  812.     {$ENDC}
  813. PROCEDURE SetMoviePreferredVolume(theMovie: Movie; volume: INTEGER);
  814.     {$IFC NOT GENERATINGCFM}
  815.     INLINE $303C, $00F6, $AAAA;
  816.     {$ENDC}
  817. FUNCTION GetMovieVolume(theMovie: Movie): INTEGER;
  818.     {$IFC NOT GENERATINGCFM}
  819.     INLINE $702E, $AAAA;
  820.     {$ENDC}
  821. PROCEDURE SetMovieVolume(theMovie: Movie; volume: INTEGER);
  822.     {$IFC NOT GENERATINGCFM}
  823.     INLINE $702F, $AAAA;
  824.     {$ENDC}
  825. PROCEDURE GetMovieMatrix(theMovie: Movie; VAR matrix: MatrixRecord);
  826.     {$IFC NOT GENERATINGCFM}
  827.     INLINE $7031, $AAAA;
  828.     {$ENDC}
  829. PROCEDURE SetMovieMatrix(theMovie: Movie; {CONST}VAR matrix: MatrixRecord);
  830.     {$IFC NOT GENERATINGCFM}
  831.     INLINE $7032, $AAAA;
  832.     {$ENDC}
  833. PROCEDURE GetMoviePreviewTime(theMovie: Movie; VAR previewTime: TimeValue; VAR previewDuration: TimeValue);
  834.     {$IFC NOT GENERATINGCFM}
  835.     INLINE $7033, $AAAA;
  836.     {$ENDC}
  837. PROCEDURE SetMoviePreviewTime(theMovie: Movie; previewTime: TimeValue; previewDuration: TimeValue);
  838.     {$IFC NOT GENERATINGCFM}
  839.     INLINE $7034, $AAAA;
  840.     {$ENDC}
  841. FUNCTION GetMoviePosterTime(theMovie: Movie): TimeValue;
  842.     {$IFC NOT GENERATINGCFM}
  843.     INLINE $7035, $AAAA;
  844.     {$ENDC}
  845. PROCEDURE SetMoviePosterTime(theMovie: Movie; posterTime: TimeValue);
  846.     {$IFC NOT GENERATINGCFM}
  847.     INLINE $7036, $AAAA;
  848.     {$ENDC}
  849. PROCEDURE GetMovieSelection(theMovie: Movie; VAR selectionTime: TimeValue; VAR selectionDuration: TimeValue);
  850.     {$IFC NOT GENERATINGCFM}
  851.     INLINE $7037, $AAAA;
  852.     {$ENDC}
  853. PROCEDURE SetMovieSelection(theMovie: Movie; selectionTime: TimeValue; selectionDuration: TimeValue);
  854.     {$IFC NOT GENERATINGCFM}
  855.     INLINE $7038, $AAAA;
  856.     {$ENDC}
  857. PROCEDURE SetMovieActiveSegment(theMovie: Movie; startTime: TimeValue; duration: TimeValue);
  858.     {$IFC NOT GENERATINGCFM}
  859.     INLINE $303C, $015C, $AAAA;
  860.     {$ENDC}
  861. PROCEDURE GetMovieActiveSegment(theMovie: Movie; VAR startTime: TimeValue; VAR duration: TimeValue);
  862.     {$IFC NOT GENERATINGCFM}
  863.     INLINE $303C, $015D, $AAAA;
  864.     {$ENDC}
  865. FUNCTION GetMovieTime(theMovie: Movie; VAR currentTime: TimeRecord): TimeValue;
  866.     {$IFC NOT GENERATINGCFM}
  867.     INLINE $7039, $AAAA;
  868.     {$ENDC}
  869. PROCEDURE SetMovieTime(theMovie: Movie; {CONST}VAR newtime: TimeRecord);
  870.     {$IFC NOT GENERATINGCFM}
  871.     INLINE $703C, $AAAA;
  872.     {$ENDC}
  873. PROCEDURE SetMovieTimeValue(theMovie: Movie; newtime: TimeValue);
  874.     {$IFC NOT GENERATINGCFM}
  875.     INLINE $703D, $AAAA;
  876.     {$ENDC}
  877. FUNCTION GetMovieUserData(theMovie: Movie): UserData;
  878.     {$IFC NOT GENERATINGCFM}
  879.     INLINE $703E, $AAAA;
  880.     {$ENDC}
  881. {
  882. ************************
  883. * Track/Media finding routines
  884. *************************
  885. }
  886. FUNCTION GetMovieTrackCount(theMovie: Movie): LONGINT;
  887.     {$IFC NOT GENERATINGCFM}
  888.     INLINE $703F, $AAAA;
  889.     {$ENDC}
  890. FUNCTION GetMovieTrack(theMovie: Movie; trackID: LONGINT): Track;
  891.     {$IFC NOT GENERATINGCFM}
  892.     INLINE $7040, $AAAA;
  893.     {$ENDC}
  894. FUNCTION GetMovieIndTrack(theMovie: Movie; index: LONGINT): Track;
  895.     {$IFC NOT GENERATINGCFM}
  896.     INLINE $303C, $0117, $AAAA;
  897.     {$ENDC}
  898. FUNCTION GetMovieIndTrackType(theMovie: Movie; index: LONGINT; trackType: OSType; flags: LONGINT): Track;
  899.     {$IFC NOT GENERATINGCFM}
  900.     INLINE $303C, $0208, $AAAA;
  901.     {$ENDC}
  902. FUNCTION GetTrackID(theTrack: Track): LONGINT;
  903.     {$IFC NOT GENERATINGCFM}
  904.     INLINE $303C, $0127, $AAAA;
  905.     {$ENDC}
  906. FUNCTION GetTrackMovie(theTrack: Track): Movie;
  907.     {$IFC NOT GENERATINGCFM}
  908.     INLINE $303C, $00D0, $AAAA;
  909.     {$ENDC}
  910. {
  911. ************************
  912. * Track creation routines
  913. *************************
  914. }
  915. FUNCTION NewMovieTrack(theMovie: Movie; width: Fixed; height: Fixed; trackVolume: INTEGER): Track;
  916.     {$IFC NOT GENERATINGCFM}
  917.     INLINE $303C, $0188, $AAAA;
  918.     {$ENDC}
  919. PROCEDURE DisposeMovieTrack(theTrack: Track);
  920.     {$IFC NOT GENERATINGCFM}
  921.     INLINE $7042, $AAAA;
  922.     {$ENDC}
  923. {
  924. ************************
  925. * Track State routines
  926. *************************
  927. }
  928. FUNCTION GetTrackCreationTime(theTrack: Track): LONGINT;
  929.     {$IFC NOT GENERATINGCFM}
  930.     INLINE $7043, $AAAA;
  931.     {$ENDC}
  932. FUNCTION GetTrackModificationTime(theTrack: Track): LONGINT;
  933.     {$IFC NOT GENERATINGCFM}
  934.     INLINE $7044, $AAAA;
  935.     {$ENDC}
  936. FUNCTION GetTrackEnabled(theTrack: Track): BOOLEAN;
  937.     {$IFC NOT GENERATINGCFM}
  938.     INLINE $7045, $AAAA;
  939.     {$ENDC}
  940. PROCEDURE SetTrackEnabled(theTrack: Track; isEnabled: BOOLEAN);
  941.     {$IFC NOT GENERATINGCFM}
  942.     INLINE $7046, $AAAA;
  943.     {$ENDC}
  944. FUNCTION GetTrackUsage(theTrack: Track): LONGINT;
  945.     {$IFC NOT GENERATINGCFM}
  946.     INLINE $7047, $AAAA;
  947.     {$ENDC}
  948. PROCEDURE SetTrackUsage(theTrack: Track; usage: LONGINT);
  949.     {$IFC NOT GENERATINGCFM}
  950.     INLINE $7048, $AAAA;
  951.     {$ENDC}
  952. FUNCTION GetTrackDuration(theTrack: Track): TimeValue;
  953.     {$IFC NOT GENERATINGCFM}
  954.     INLINE $704B, $AAAA;
  955.     {$ENDC}
  956. FUNCTION GetTrackOffset(theTrack: Track): TimeValue;
  957.     {$IFC NOT GENERATINGCFM}
  958.     INLINE $704C, $AAAA;
  959.     {$ENDC}
  960. PROCEDURE SetTrackOffset(theTrack: Track; movieOffsetTime: TimeValue);
  961.     {$IFC NOT GENERATINGCFM}
  962.     INLINE $704D, $AAAA;
  963.     {$ENDC}
  964. FUNCTION GetTrackLayer(theTrack: Track): INTEGER;
  965.     {$IFC NOT GENERATINGCFM}
  966.     INLINE $7050, $AAAA;
  967.     {$ENDC}
  968. PROCEDURE SetTrackLayer(theTrack: Track; layer: INTEGER);
  969.     {$IFC NOT GENERATINGCFM}
  970.     INLINE $7051, $AAAA;
  971.     {$ENDC}
  972. FUNCTION GetTrackAlternate(theTrack: Track): Track;
  973.     {$IFC NOT GENERATINGCFM}
  974.     INLINE $7052, $AAAA;
  975.     {$ENDC}
  976. PROCEDURE SetTrackAlternate(theTrack: Track; alternateT: Track);
  977.     {$IFC NOT GENERATINGCFM}
  978.     INLINE $7053, $AAAA;
  979.     {$ENDC}
  980. PROCEDURE SetAutoTrackAlternatesEnabled(theMovie: Movie; enable: BOOLEAN);
  981.     {$IFC NOT GENERATINGCFM}
  982.     INLINE $303C, $015E, $AAAA;
  983.     {$ENDC}
  984. PROCEDURE SelectMovieAlternates(theMovie: Movie);
  985.     {$IFC NOT GENERATINGCFM}
  986.     INLINE $303C, $015F, $AAAA;
  987.     {$ENDC}
  988. FUNCTION GetTrackVolume(theTrack: Track): INTEGER;
  989.     {$IFC NOT GENERATINGCFM}
  990.     INLINE $7054, $AAAA;
  991.     {$ENDC}
  992. PROCEDURE SetTrackVolume(theTrack: Track; volume: INTEGER);
  993.     {$IFC NOT GENERATINGCFM}
  994.     INLINE $7055, $AAAA;
  995.     {$ENDC}
  996. PROCEDURE GetTrackMatrix(theTrack: Track; VAR matrix: MatrixRecord);
  997.     {$IFC NOT GENERATINGCFM}
  998.     INLINE $7056, $AAAA;
  999.     {$ENDC}
  1000. PROCEDURE SetTrackMatrix(theTrack: Track; {CONST}VAR matrix: MatrixRecord);
  1001.     {$IFC NOT GENERATINGCFM}
  1002.     INLINE $7057, $AAAA;
  1003.     {$ENDC}
  1004. PROCEDURE GetTrackDimensions(theTrack: Track; VAR width: Fixed; VAR height: Fixed);
  1005.     {$IFC NOT GENERATINGCFM}
  1006.     INLINE $705D, $AAAA;
  1007.     {$ENDC}
  1008. PROCEDURE SetTrackDimensions(theTrack: Track; width: Fixed; height: Fixed);
  1009.     {$IFC NOT GENERATINGCFM}
  1010.     INLINE $705E, $AAAA;
  1011.     {$ENDC}
  1012. FUNCTION GetTrackUserData(theTrack: Track): UserData;
  1013.     {$IFC NOT GENERATINGCFM}
  1014.     INLINE $705F, $AAAA;
  1015.     {$ENDC}
  1016. {
  1017. ************************
  1018. * get Media routines
  1019. *************************
  1020. }
  1021. FUNCTION NewTrackMedia(theTrack: Track; mediaType: OSType; timeScale: TimeScale; dataRef: Handle; dataRefType: OSType): Media;
  1022.     {$IFC NOT GENERATINGCFM}
  1023.     INLINE $303C, $018E, $AAAA;
  1024.     {$ENDC}
  1025. PROCEDURE DisposeTrackMedia(theMedia: Media);
  1026.     {$IFC NOT GENERATINGCFM}
  1027.     INLINE $7061, $AAAA;
  1028.     {$ENDC}
  1029. FUNCTION GetTrackMedia(theTrack: Track): Media;
  1030.     {$IFC NOT GENERATINGCFM}
  1031.     INLINE $7062, $AAAA;
  1032.     {$ENDC}
  1033. FUNCTION GetMediaTrack(theMedia: Media): Track;
  1034.     {$IFC NOT GENERATINGCFM}
  1035.     INLINE $303C, $00C5, $AAAA;
  1036.     {$ENDC}
  1037. {
  1038. ************************
  1039. * Media State routines
  1040. *************************
  1041. }
  1042. FUNCTION GetMediaCreationTime(theMedia: Media): LONGINT;
  1043.     {$IFC NOT GENERATINGCFM}
  1044.     INLINE $7066, $AAAA;
  1045.     {$ENDC}
  1046. FUNCTION GetMediaModificationTime(theMedia: Media): LONGINT;
  1047.     {$IFC NOT GENERATINGCFM}
  1048.     INLINE $7067, $AAAA;
  1049.     {$ENDC}
  1050. FUNCTION GetMediaTimeScale(theMedia: Media): TimeScale;
  1051.     {$IFC NOT GENERATINGCFM}
  1052.     INLINE $7068, $AAAA;
  1053.     {$ENDC}
  1054. PROCEDURE SetMediaTimeScale(theMedia: Media; timeScale: TimeScale);
  1055.     {$IFC NOT GENERATINGCFM}
  1056.     INLINE $7069, $AAAA;
  1057.     {$ENDC}
  1058. FUNCTION GetMediaDuration(theMedia: Media): TimeValue;
  1059.     {$IFC NOT GENERATINGCFM}
  1060.     INLINE $706A, $AAAA;
  1061.     {$ENDC}
  1062. FUNCTION GetMediaLanguage(theMedia: Media): INTEGER;
  1063.     {$IFC NOT GENERATINGCFM}
  1064.     INLINE $706B, $AAAA;
  1065.     {$ENDC}
  1066. PROCEDURE SetMediaLanguage(theMedia: Media; language: INTEGER);
  1067.     {$IFC NOT GENERATINGCFM}
  1068.     INLINE $706C, $AAAA;
  1069.     {$ENDC}
  1070. FUNCTION GetMediaQuality(theMedia: Media): INTEGER;
  1071.     {$IFC NOT GENERATINGCFM}
  1072.     INLINE $706D, $AAAA;
  1073.     {$ENDC}
  1074. PROCEDURE SetMediaQuality(theMedia: Media; quality: INTEGER);
  1075.     {$IFC NOT GENERATINGCFM}
  1076.     INLINE $706E, $AAAA;
  1077.     {$ENDC}
  1078. PROCEDURE GetMediaHandlerDescription(theMedia: Media; VAR mediaType: OSType; VAR creatorName: Str255; VAR creatorManufacturer: OSType);
  1079.     {$IFC NOT GENERATINGCFM}
  1080.     INLINE $706F, $AAAA;
  1081.     {$ENDC}
  1082. FUNCTION GetMediaUserData(theMedia: Media): UserData;
  1083.     {$IFC NOT GENERATINGCFM}
  1084.     INLINE $7070, $AAAA;
  1085.     {$ENDC}
  1086. FUNCTION GetMediaInputMap(theMedia: Media; VAR inputMap: QTAtomContainer): OSErr;
  1087.     {$IFC NOT GENERATINGCFM}
  1088.     INLINE $303C, $0249, $AAAA;
  1089.     {$ENDC}
  1090. FUNCTION SetMediaInputMap(theMedia: Media; inputMap: QTAtomContainer): OSErr;
  1091.     {$IFC NOT GENERATINGCFM}
  1092.     INLINE $303C, $024A, $AAAA;
  1093.     {$ENDC}
  1094. {
  1095. ************************
  1096. * Media Handler routines
  1097. *************************
  1098. }
  1099. FUNCTION GetMediaHandler(theMedia: Media): MediaHandler;
  1100.     {$IFC NOT GENERATINGCFM}
  1101.     INLINE $7071, $AAAA;
  1102.     {$ENDC}
  1103. FUNCTION SetMediaHandler(theMedia: Media; mH: MediaHandlerComponent): OSErr;
  1104.     {$IFC NOT GENERATINGCFM}
  1105.     INLINE $303C, $0190, $AAAA;
  1106.     {$ENDC}
  1107. {
  1108. ************************
  1109. * Media's Data routines
  1110. *************************
  1111. }
  1112. FUNCTION BeginMediaEdits(theMedia: Media): OSErr;
  1113.     {$IFC NOT GENERATINGCFM}
  1114.     INLINE $7072, $AAAA;
  1115.     {$ENDC}
  1116. FUNCTION EndMediaEdits(theMedia: Media): OSErr;
  1117.     {$IFC NOT GENERATINGCFM}
  1118.     INLINE $7073, $AAAA;
  1119.     {$ENDC}
  1120. FUNCTION SetMediaDefaultDataRefIndex(theMedia: Media; index: INTEGER): OSErr;
  1121.     {$IFC NOT GENERATINGCFM}
  1122.     INLINE $303C, $01E0, $AAAA;
  1123.     {$ENDC}
  1124. PROCEDURE GetMediaDataHandlerDescription(theMedia: Media; index: INTEGER; VAR dhType: OSType; VAR creatorName: Str255; VAR creatorManufacturer: OSType);
  1125.     {$IFC NOT GENERATINGCFM}
  1126.     INLINE $303C, $019E, $AAAA;
  1127.     {$ENDC}
  1128. FUNCTION GetMediaDataHandler(theMedia: Media; index: INTEGER): DataHandler;
  1129.     {$IFC NOT GENERATINGCFM}
  1130.     INLINE $303C, $019F, $AAAA;
  1131.     {$ENDC}
  1132. FUNCTION SetMediaDataHandler(theMedia: Media; index: INTEGER; dataHandler: DataHandlerComponent): OSErr;
  1133.     {$IFC NOT GENERATINGCFM}
  1134.     INLINE $303C, $01A0, $AAAA;
  1135.     {$ENDC}
  1136. FUNCTION GetDataHandler(dataRef: Handle; dataHandlerSubType: OSType; flags: LONGINT): Component;
  1137.     {$IFC NOT GENERATINGCFM}
  1138.     INLINE $303C, $01ED, $AAAA;
  1139.     {$ENDC}
  1140. {
  1141. ************************
  1142. * Media Sample Table Routines
  1143. *************************
  1144. }
  1145. FUNCTION GetMediaSampleDescriptionCount(theMedia: Media): LONGINT;
  1146.     {$IFC NOT GENERATINGCFM}
  1147.     INLINE $7077, $AAAA;
  1148.     {$ENDC}
  1149. PROCEDURE GetMediaSampleDescription(theMedia: Media; index: LONGINT; descH: SampleDescriptionHandle);
  1150.     {$IFC NOT GENERATINGCFM}
  1151.     INLINE $7078, $AAAA;
  1152.     {$ENDC}
  1153. FUNCTION SetMediaSampleDescription(theMedia: Media; index: LONGINT; descH: SampleDescriptionHandle): OSErr;
  1154.     {$IFC NOT GENERATINGCFM}
  1155.     INLINE $303C, $01D0, $AAAA;
  1156.     {$ENDC}
  1157. FUNCTION GetMediaSampleCount(theMedia: Media): LONGINT;
  1158.     {$IFC NOT GENERATINGCFM}
  1159.     INLINE $7079, $AAAA;
  1160.     {$ENDC}
  1161. PROCEDURE SampleNumToMediaTime(theMedia: Media; logicalSampleNum: LONGINT; VAR sampleTime: TimeValue; VAR sampleDuration: TimeValue);
  1162.     {$IFC NOT GENERATINGCFM}
  1163.     INLINE $707A, $AAAA;
  1164.     {$ENDC}
  1165. PROCEDURE MediaTimeToSampleNum(theMedia: Media; time: TimeValue; VAR sampleNum: LONGINT; VAR sampleTime: TimeValue; VAR sampleDuration: TimeValue);
  1166.     {$IFC NOT GENERATINGCFM}
  1167.     INLINE $707B, $AAAA;
  1168.     {$ENDC}
  1169. FUNCTION AddMediaSample(theMedia: Media; dataIn: Handle; inOffset: LONGINT; size: LONGINT; durationPerSample: TimeValue; sampleDescriptionH: SampleDescriptionHandle; numberOfSamples: LONGINT; sampleFlags: INTEGER; VAR sampleTime: TimeValue): OSErr;
  1170.     {$IFC NOT GENERATINGCFM}
  1171.     INLINE $707C, $AAAA;
  1172.     {$ENDC}
  1173. FUNCTION AddMediaSampleReference(theMedia: Media; dataOffset: LONGINT; size: LONGINT; durationPerSample: TimeValue; sampleDescriptionH: SampleDescriptionHandle; numberOfSamples: LONGINT; sampleFlags: INTEGER; VAR sampleTime: TimeValue): OSErr;
  1174.     {$IFC NOT GENERATINGCFM}
  1175.     INLINE $707D, $AAAA;
  1176.     {$ENDC}
  1177. FUNCTION AddMediaSampleReferences(theMedia: Media; sampleDescriptionH: SampleDescriptionHandle; numberOfSamples: LONGINT; sampleRefs: SampleReferencePtr; VAR sampleTime: TimeValue): OSErr;
  1178.     {$IFC NOT GENERATINGCFM}
  1179.     INLINE $303C, $01F7, $AAAA;
  1180.     {$ENDC}
  1181. FUNCTION GetMediaSample(theMedia: Media; dataOut: Handle; maxSizeToGrow: LONGINT; VAR size: LONGINT; time: TimeValue; VAR sampleTime: TimeValue; VAR durationPerSample: TimeValue; sampleDescriptionH: SampleDescriptionHandle; VAR sampleDescriptionIndex: LONGINT; maxNumberOfSamples: LONGINT; VAR numberOfSamples: LONGINT; VAR sampleFlags: INTEGER): OSErr;
  1182.     {$IFC NOT GENERATINGCFM}
  1183.     INLINE $707E, $AAAA;
  1184.     {$ENDC}
  1185. FUNCTION GetMediaSampleReference(theMedia: Media; VAR dataOffset: LONGINT; VAR size: LONGINT; time: TimeValue; VAR sampleTime: TimeValue; VAR durationPerSample: TimeValue; sampleDescriptionH: SampleDescriptionHandle; VAR sampleDescriptionIndex: LONGINT; maxNumberOfSamples: LONGINT; VAR numberOfSamples: LONGINT; VAR sampleFlags: INTEGER): OSErr;
  1186.     {$IFC NOT GENERATINGCFM}
  1187.     INLINE $707F, $AAAA;
  1188.     {$ENDC}
  1189. FUNCTION GetMediaSampleReferences(theMedia: Media; time: TimeValue; VAR sampleTime: TimeValue; sampleDescriptionH: SampleDescriptionHandle; VAR sampleDescriptionIndex: LONGINT; maxNumberOfEntries: LONGINT; VAR actualNumberofEntries: LONGINT; sampleRefs: SampleReferencePtr): OSErr;
  1190.     {$IFC NOT GENERATINGCFM}
  1191.     INLINE $303C, $0235, $AAAA;
  1192.     {$ENDC}
  1193. FUNCTION SetMediaPreferredChunkSize(theMedia: Media; maxChunkSize: LONGINT): OSErr;
  1194.     {$IFC NOT GENERATINGCFM}
  1195.     INLINE $303C, $01F8, $AAAA;
  1196.     {$ENDC}
  1197. FUNCTION GetMediaPreferredChunkSize(theMedia: Media; VAR maxChunkSize: LONGINT): OSErr;
  1198.     {$IFC NOT GENERATINGCFM}
  1199.     INLINE $303C, $01F9, $AAAA;
  1200.     {$ENDC}
  1201. FUNCTION SetMediaShadowSync(theMedia: Media; frameDiffSampleNum: LONGINT; syncSampleNum: LONGINT): OSErr;
  1202.     {$IFC NOT GENERATINGCFM}
  1203.     INLINE $303C, $0121, $AAAA;
  1204.     {$ENDC}
  1205. FUNCTION GetMediaShadowSync(theMedia: Media; frameDiffSampleNum: LONGINT; VAR syncSampleNum: LONGINT): OSErr;
  1206.     {$IFC NOT GENERATINGCFM}
  1207.     INLINE $303C, $0122, $AAAA;
  1208.     {$ENDC}
  1209. {
  1210. ************************
  1211. * Editing Routines
  1212. *************************
  1213. }
  1214. FUNCTION InsertMediaIntoTrack(theTrack: Track; trackStart: TimeValue; mediaTime: TimeValue; mediaDuration: TimeValue; mediaRate: Fixed): OSErr;
  1215.     {$IFC NOT GENERATINGCFM}
  1216.     INLINE $303C, $0183, $AAAA;
  1217.     {$ENDC}
  1218. FUNCTION InsertTrackSegment(srcTrack: Track; dstTrack: Track; srcIn: TimeValue; srcDuration: TimeValue; dstIn: TimeValue): OSErr;
  1219.     {$IFC NOT GENERATINGCFM}
  1220.     INLINE $303C, $0085, $AAAA;
  1221.     {$ENDC}
  1222. FUNCTION InsertMovieSegment(srcMovie: Movie; dstMovie: Movie; srcIn: TimeValue; srcDuration: TimeValue; dstIn: TimeValue): OSErr;
  1223.     {$IFC NOT GENERATINGCFM}
  1224.     INLINE $303C, $0086, $AAAA;
  1225.     {$ENDC}
  1226. FUNCTION InsertEmptyTrackSegment(dstTrack: Track; dstIn: TimeValue; dstDuration: TimeValue): OSErr;
  1227.     {$IFC NOT GENERATINGCFM}
  1228.     INLINE $303C, $0087, $AAAA;
  1229.     {$ENDC}
  1230. FUNCTION InsertEmptyMovieSegment(dstMovie: Movie; dstIn: TimeValue; dstDuration: TimeValue): OSErr;
  1231.     {$IFC NOT GENERATINGCFM}
  1232.     INLINE $303C, $0088, $AAAA;
  1233.     {$ENDC}
  1234. FUNCTION DeleteTrackSegment(theTrack: Track; startTime: TimeValue; duration: TimeValue): OSErr;
  1235.     {$IFC NOT GENERATINGCFM}
  1236.     INLINE $303C, $0089, $AAAA;
  1237.     {$ENDC}
  1238. FUNCTION DeleteMovieSegment(theMovie: Movie; startTime: TimeValue; duration: TimeValue): OSErr;
  1239.     {$IFC NOT GENERATINGCFM}
  1240.     INLINE $303C, $008A, $AAAA;
  1241.     {$ENDC}
  1242. FUNCTION ScaleTrackSegment(theTrack: Track; startTime: TimeValue; oldDuration: TimeValue; newDuration: TimeValue): OSErr;
  1243.     {$IFC NOT GENERATINGCFM}
  1244.     INLINE $303C, $008B, $AAAA;
  1245.     {$ENDC}
  1246. FUNCTION ScaleMovieSegment(theMovie: Movie; startTime: TimeValue; oldDuration: TimeValue; newDuration: TimeValue): OSErr;
  1247.     {$IFC NOT GENERATINGCFM}
  1248.     INLINE $303C, $008C, $AAAA;
  1249.     {$ENDC}
  1250. {
  1251. ************************
  1252. * Hi-level Editing Routines
  1253. *************************
  1254. }
  1255. FUNCTION CutMovieSelection(theMovie: Movie): Movie;
  1256.     {$IFC NOT GENERATINGCFM}
  1257.     INLINE $303C, $008D, $AAAA;
  1258.     {$ENDC}
  1259. FUNCTION CopyMovieSelection(theMovie: Movie): Movie;
  1260.     {$IFC NOT GENERATINGCFM}
  1261.     INLINE $303C, $008E, $AAAA;
  1262.     {$ENDC}
  1263. PROCEDURE PasteMovieSelection(theMovie: Movie; src: Movie);
  1264.     {$IFC NOT GENERATINGCFM}
  1265.     INLINE $303C, $008F, $AAAA;
  1266.     {$ENDC}
  1267. PROCEDURE AddMovieSelection(theMovie: Movie; src: Movie);
  1268.     {$IFC NOT GENERATINGCFM}
  1269.     INLINE $303C, $0152, $AAAA;
  1270.     {$ENDC}
  1271. PROCEDURE ClearMovieSelection(theMovie: Movie);
  1272.     {$IFC NOT GENERATINGCFM}
  1273.     INLINE $303C, $00E1, $AAAA;
  1274.     {$ENDC}
  1275. FUNCTION PasteHandleIntoMovie(h: Handle; handleType: OSType; theMovie: Movie; flags: LONGINT; userComp: ComponentInstance): OSErr;
  1276.     {$IFC NOT GENERATINGCFM}
  1277.     INLINE $303C, $00CB, $AAAA;
  1278.     {$ENDC}
  1279. FUNCTION PutMovieIntoTypedHandle(theMovie: Movie; targetTrack: Track; handleType: OSType; publicMovie: Handle; start: TimeValue; dur: TimeValue; flags: LONGINT; userComp: ComponentInstance): OSErr;
  1280.     {$IFC NOT GENERATINGCFM}
  1281.     INLINE $303C, $01CD, $AAAA;
  1282.     {$ENDC}
  1283. FUNCTION IsScrapMovie(targetTrack: Track): Component;
  1284.     {$IFC NOT GENERATINGCFM}
  1285.     INLINE $303C, $00CC, $AAAA;
  1286.     {$ENDC}
  1287. {
  1288. ************************
  1289. * Middle-level Editing Routines
  1290. *************************
  1291. }
  1292. FUNCTION CopyTrackSettings(srcTrack: Track; dstTrack: Track): OSErr;
  1293.     {$IFC NOT GENERATINGCFM}
  1294.     INLINE $303C, $0153, $AAAA;
  1295.     {$ENDC}
  1296. FUNCTION CopyMovieSettings(srcMovie: Movie; dstMovie: Movie): OSErr;
  1297.     {$IFC NOT GENERATINGCFM}
  1298.     INLINE $303C, $0154, $AAAA;
  1299.     {$ENDC}
  1300. FUNCTION AddEmptyTrackToMovie(srcTrack: Track; dstMovie: Movie; dataRef: Handle; dataRefType: OSType; VAR dstTrack: Track): OSErr;
  1301.     {$IFC NOT GENERATINGCFM}
  1302.     INLINE $7074, $AAAA;
  1303.     {$ENDC}
  1304. {
  1305. ************************
  1306. * movie & track edit state routines
  1307. *************************
  1308. }
  1309. FUNCTION NewMovieEditState(theMovie: Movie): MovieEditState;
  1310.     {$IFC NOT GENERATINGCFM}
  1311.     INLINE $303C, $0104, $AAAA;
  1312.     {$ENDC}
  1313. FUNCTION UseMovieEditState(theMovie: Movie; toState: MovieEditState): OSErr;
  1314.     {$IFC NOT GENERATINGCFM}
  1315.     INLINE $303C, $0105, $AAAA;
  1316.     {$ENDC}
  1317. FUNCTION DisposeMovieEditState(state: MovieEditState): OSErr;
  1318.     {$IFC NOT GENERATINGCFM}
  1319.     INLINE $303C, $0106, $AAAA;
  1320.     {$ENDC}
  1321. FUNCTION NewTrackEditState(theTrack: Track): TrackEditState;
  1322.     {$IFC NOT GENERATINGCFM}
  1323.     INLINE $303C, $0107, $AAAA;
  1324.     {$ENDC}
  1325. FUNCTION UseTrackEditState(theTrack: Track; state: TrackEditState): OSErr;
  1326.     {$IFC NOT GENERATINGCFM}
  1327.     INLINE $303C, $0108, $AAAA;
  1328.     {$ENDC}
  1329. FUNCTION DisposeTrackEditState(state: TrackEditState): OSErr;
  1330.     {$IFC NOT GENERATINGCFM}
  1331.     INLINE $303C, $0109, $AAAA;
  1332.     {$ENDC}
  1333. {
  1334. ************************
  1335. * track reference routines
  1336. *************************
  1337. }
  1338. FUNCTION AddTrackReference(theTrack: Track; refTrack: Track; refType: OSType; VAR addedIndex: LONGINT): OSErr;
  1339.     {$IFC NOT GENERATINGCFM}
  1340.     INLINE $303C, $01F0, $AAAA;
  1341.     {$ENDC}
  1342. FUNCTION DeleteTrackReference(theTrack: Track; refType: OSType; index: LONGINT): OSErr;
  1343.     {$IFC NOT GENERATINGCFM}
  1344.     INLINE $303C, $01F1, $AAAA;
  1345.     {$ENDC}
  1346. FUNCTION SetTrackReference(theTrack: Track; refTrack: Track; refType: OSType; index: LONGINT): OSErr;
  1347.     {$IFC NOT GENERATINGCFM}
  1348.     INLINE $303C, $01F2, $AAAA;
  1349.     {$ENDC}
  1350. FUNCTION GetTrackReference(theTrack: Track; refType: OSType; index: LONGINT): Track;
  1351.     {$IFC NOT GENERATINGCFM}
  1352.     INLINE $303C, $01F3, $AAAA;
  1353.     {$ENDC}
  1354. FUNCTION GetNextTrackReferenceType(theTrack: Track; refType: OSType): LONGINT;
  1355.     {$IFC NOT GENERATINGCFM}
  1356.     INLINE $303C, $01F4, $AAAA;
  1357.     {$ENDC}
  1358. FUNCTION GetTrackReferenceCount(theTrack: Track; refType: OSType): LONGINT;
  1359.     {$IFC NOT GENERATINGCFM}
  1360.     INLINE $303C, $01F5, $AAAA;
  1361.     {$ENDC}
  1362. {
  1363. ************************
  1364. * modifier track types
  1365. *************************
  1366. }
  1367.  
  1368. CONST
  1369.     kTrackModifierReference        = 'ssrc';
  1370.     kTrackModifierInput            = $696E;                        {  'in' }
  1371.     kTrackModifierType            = $7479;                        {  'ty' }
  1372.  
  1373.     kTrackModifierTypeMatrix    = 1;
  1374.     kTrackModifierTypeClip        = 2;
  1375.     kTrackModifierTypeGraphicsMode = 5;
  1376.     kTrackModifierTypeVolume    = 3;
  1377.     kTrackModifierTypeBalance    = 4;
  1378.     kTrackModifierTypeSpriteImage = 'vide';
  1379.  
  1380.  
  1381. TYPE
  1382.     ModifierTrackGraphicsModeRecordPtr = ^ModifierTrackGraphicsModeRecord;
  1383.     ModifierTrackGraphicsModeRecord = RECORD
  1384.         graphicsMode:            LONGINT;
  1385.         opColor:                RGBColor;
  1386.     END;
  1387.  
  1388. {
  1389. ************************
  1390. * high level file conversion routines
  1391. *************************
  1392. }
  1393. FUNCTION ConvertFileToMovieFile({CONST}VAR inputFile: FSSpec; {CONST}VAR outputFile: FSSpec; creator: OSType; scriptTag: ScriptCode; VAR resID: INTEGER; flags: LONGINT; userComp: ComponentInstance; proc: MovieProgressUPP; refCon: LONGINT): OSErr;
  1394.     {$IFC NOT GENERATINGCFM}
  1395.     INLINE $303C, $01CB, $AAAA;
  1396.     {$ENDC}
  1397. FUNCTION ConvertMovieToFile(theMovie: Movie; onlyTrack: Track; VAR outputFile: FSSpec; fileType: OSType; creator: OSType; scriptTag: ScriptCode; VAR resID: INTEGER; flags: LONGINT; userComp: ComponentInstance): OSErr;
  1398.     {$IFC NOT GENERATINGCFM}
  1399.     INLINE $303C, $01CC, $AAAA;
  1400.     {$ENDC}
  1401. {
  1402. ************************
  1403. * Movie Timebase Conversion Routines
  1404. *************************
  1405. }
  1406. FUNCTION TrackTimeToMediaTime(value: TimeValue; theTrack: Track): TimeValue;
  1407.     {$IFC NOT GENERATINGCFM}
  1408.     INLINE $303C, $0096, $AAAA;
  1409.     {$ENDC}
  1410. FUNCTION GetTrackEditRate(theTrack: Track; atTime: TimeValue): Fixed;
  1411.     {$IFC NOT GENERATINGCFM}
  1412.     INLINE $303C, $0123, $AAAA;
  1413.     {$ENDC}
  1414. {
  1415. ************************
  1416. * Miscellaneous Routines
  1417. *************************
  1418. }
  1419. FUNCTION GetMovieDataSize(theMovie: Movie; startTime: TimeValue; duration: TimeValue): LONGINT;
  1420.     {$IFC NOT GENERATINGCFM}
  1421.     INLINE $303C, $0098, $AAAA;
  1422.     {$ENDC}
  1423. FUNCTION GetTrackDataSize(theTrack: Track; startTime: TimeValue; duration: TimeValue): LONGINT;
  1424.     {$IFC NOT GENERATINGCFM}
  1425.     INLINE $303C, $0149, $AAAA;
  1426.     {$ENDC}
  1427. FUNCTION GetMediaDataSize(theMedia: Media; startTime: TimeValue; duration: TimeValue): LONGINT;
  1428.     {$IFC NOT GENERATINGCFM}
  1429.     INLINE $303C, $0099, $AAAA;
  1430.     {$ENDC}
  1431. FUNCTION PtInMovie(theMovie: Movie; pt: Point): BOOLEAN;
  1432.     {$IFC NOT GENERATINGCFM}
  1433.     INLINE $303C, $009A, $AAAA;
  1434.     {$ENDC}
  1435. FUNCTION PtInTrack(theTrack: Track; pt: Point): BOOLEAN;
  1436.     {$IFC NOT GENERATINGCFM}
  1437.     INLINE $303C, $009B, $AAAA;
  1438.     {$ENDC}
  1439. {
  1440. ************************
  1441. * Group Selection Routines
  1442. *************************
  1443. }
  1444. PROCEDURE SetMovieLanguage(theMovie: Movie; language: LONGINT);
  1445.     {$IFC NOT GENERATINGCFM}
  1446.     INLINE $303C, $009C, $AAAA;
  1447.     {$ENDC}
  1448. {
  1449. ************************
  1450. * User Data
  1451. *************************
  1452. }
  1453. FUNCTION GetUserData(theUserData: UserData; data: Handle; udType: OSType; index: LONGINT): OSErr;
  1454.     {$IFC NOT GENERATINGCFM}
  1455.     INLINE $303C, $009E, $AAAA;
  1456.     {$ENDC}
  1457. FUNCTION AddUserData(theUserData: UserData; data: Handle; udType: OSType): OSErr;
  1458.     {$IFC NOT GENERATINGCFM}
  1459.     INLINE $303C, $009F, $AAAA;
  1460.     {$ENDC}
  1461. FUNCTION RemoveUserData(theUserData: UserData; udType: OSType; index: LONGINT): OSErr;
  1462.     {$IFC NOT GENERATINGCFM}
  1463.     INLINE $303C, $00A0, $AAAA;
  1464.     {$ENDC}
  1465. FUNCTION CountUserDataType(theUserData: UserData; udType: OSType): INTEGER;
  1466.     {$IFC NOT GENERATINGCFM}
  1467.     INLINE $303C, $014B, $AAAA;
  1468.     {$ENDC}
  1469. FUNCTION GetNextUserDataType(theUserData: UserData; udType: OSType): LONGINT;
  1470.     {$IFC NOT GENERATINGCFM}
  1471.     INLINE $303C, $01A5, $AAAA;
  1472.     {$ENDC}
  1473. FUNCTION GetUserDataItem(theUserData: UserData; data: UNIV Ptr; size: LONGINT; udType: OSType; index: LONGINT): OSErr;
  1474.     {$IFC NOT GENERATINGCFM}
  1475.     INLINE $303C, $0126, $AAAA;
  1476.     {$ENDC}
  1477. FUNCTION SetUserDataItem(theUserData: UserData; data: UNIV Ptr; size: LONGINT; udType: OSType; index: LONGINT): OSErr;
  1478.     {$IFC NOT GENERATINGCFM}
  1479.     INLINE $303C, $012E, $AAAA;
  1480.     {$ENDC}
  1481. FUNCTION AddUserDataText(theUserData: UserData; data: Handle; udType: OSType; index: LONGINT; itlRegionTag: INTEGER): OSErr;
  1482.     {$IFC NOT GENERATINGCFM}
  1483.     INLINE $303C, $014C, $AAAA;
  1484.     {$ENDC}
  1485. FUNCTION GetUserDataText(theUserData: UserData; data: Handle; udType: OSType; index: LONGINT; itlRegionTag: INTEGER): OSErr;
  1486.     {$IFC NOT GENERATINGCFM}
  1487.     INLINE $303C, $014D, $AAAA;
  1488.     {$ENDC}
  1489. FUNCTION RemoveUserDataText(theUserData: UserData; udType: OSType; index: LONGINT; itlRegionTag: INTEGER): OSErr;
  1490.     {$IFC NOT GENERATINGCFM}
  1491.     INLINE $303C, $014E, $AAAA;
  1492.     {$ENDC}
  1493. FUNCTION NewUserData(VAR theUserData: UserData): OSErr;
  1494.     {$IFC NOT GENERATINGCFM}
  1495.     INLINE $303C, $012F, $AAAA;
  1496.     {$ENDC}
  1497. FUNCTION DisposeUserData(theUserData: UserData): OSErr;
  1498.     {$IFC NOT GENERATINGCFM}
  1499.     INLINE $303C, $0130, $AAAA;
  1500.     {$ENDC}
  1501. FUNCTION NewUserDataFromHandle(h: Handle; VAR theUserData: UserData): OSErr;
  1502.     {$IFC NOT GENERATINGCFM}
  1503.     INLINE $303C, $0131, $AAAA;
  1504.     {$ENDC}
  1505. FUNCTION PutUserDataIntoHandle(theUserData: UserData; h: Handle): OSErr;
  1506.     {$IFC NOT GENERATINGCFM}
  1507.     INLINE $303C, $0132, $AAAA;
  1508.     {$ENDC}
  1509. PROCEDURE GetMediaNextInterestingTime(theMedia: Media; interestingTimeFlags: INTEGER; time: TimeValue; rate: Fixed; VAR interestingTime: TimeValue; VAR interestingDuration: TimeValue);
  1510.     {$IFC NOT GENERATINGCFM}
  1511.     INLINE $303C, $016D, $AAAA;
  1512.     {$ENDC}
  1513. PROCEDURE GetTrackNextInterestingTime(theTrack: Track; interestingTimeFlags: INTEGER; time: TimeValue; rate: Fixed; VAR interestingTime: TimeValue; VAR interestingDuration: TimeValue);
  1514.     {$IFC NOT GENERATINGCFM}
  1515.     INLINE $303C, $00E2, $AAAA;
  1516.     {$ENDC}
  1517. PROCEDURE GetMovieNextInterestingTime(theMovie: Movie; interestingTimeFlags: INTEGER; numMediaTypes: INTEGER; {CONST}VAR whichMediaTypes: OSType; time: TimeValue; rate: Fixed; VAR interestingTime: TimeValue; VAR interestingDuration: TimeValue);
  1518.     {$IFC NOT GENERATINGCFM}
  1519.     INLINE $303C, $010E, $AAAA;
  1520.     {$ENDC}
  1521. FUNCTION CreateMovieFile({CONST}VAR fileSpec: FSSpec; creator: OSType; scriptTag: ScriptCode; createMovieFileFlags: LONGINT; VAR resRefNum: INTEGER; VAR newmovie: Movie): OSErr;
  1522.     {$IFC NOT GENERATINGCFM}
  1523.     INLINE $303C, $0191, $AAAA;
  1524.     {$ENDC}
  1525. FUNCTION OpenMovieFile({CONST}VAR fileSpec: FSSpec; VAR resRefNum: INTEGER; permission: SInt8): OSErr;
  1526.     {$IFC NOT GENERATINGCFM}
  1527.     INLINE $303C, $0192, $AAAA;
  1528.     {$ENDC}
  1529. FUNCTION CloseMovieFile(resRefNum: INTEGER): OSErr;
  1530.     {$IFC NOT GENERATINGCFM}
  1531.     INLINE $303C, $00D5, $AAAA;
  1532.     {$ENDC}
  1533. FUNCTION DeleteMovieFile({CONST}VAR fileSpec: FSSpec): OSErr;
  1534.     {$IFC NOT GENERATINGCFM}
  1535.     INLINE $303C, $0175, $AAAA;
  1536.     {$ENDC}
  1537. FUNCTION NewMovieFromFile(VAR theMovie: Movie; resRefNum: INTEGER; VAR resId: INTEGER; resName: StringPtr; newMovieFlags: INTEGER; VAR dataRefWasChanged: BOOLEAN): OSErr;
  1538.     {$IFC NOT GENERATINGCFM}
  1539.     INLINE $303C, $00F0, $AAAA;
  1540.     {$ENDC}
  1541. FUNCTION NewMovieFromHandle(VAR theMovie: Movie; h: Handle; newMovieFlags: INTEGER; VAR dataRefWasChanged: BOOLEAN): OSErr;
  1542.     {$IFC NOT GENERATINGCFM}
  1543.     INLINE $303C, $00F1, $AAAA;
  1544.     {$ENDC}
  1545. FUNCTION NewMovieFromDataFork(VAR theMovie: Movie; fRefNum: INTEGER; fileOffset: LONGINT; newMovieFlags: INTEGER; VAR dataRefWasChanged: BOOLEAN): OSErr;
  1546.     {$IFC NOT GENERATINGCFM}
  1547.     INLINE $303C, $01B3, $AAAA;
  1548.     {$ENDC}
  1549. FUNCTION NewMovieFromUserProc(VAR m: Movie; flags: INTEGER; VAR dataRefWasChanged: BOOLEAN; getProc: GetMovieUPP; refCon: UNIV Ptr; defaultDataRef: Handle; dataRefType: OSType): OSErr;
  1550.     {$IFC NOT GENERATINGCFM}
  1551.     INLINE $303C, $01EC, $AAAA;
  1552.     {$ENDC}
  1553. FUNCTION NewMovieFromDataRef(VAR m: Movie; flags: INTEGER; VAR id: INTEGER; dataRef: Handle; dataRefType: OSType): OSErr;
  1554.     {$IFC NOT GENERATINGCFM}
  1555.     INLINE $303C, $0220, $AAAA;
  1556.     {$ENDC}
  1557. FUNCTION AddMovieResource(theMovie: Movie; resRefNum: INTEGER; VAR resId: INTEGER; resName: Str255): OSErr;
  1558.     {$IFC NOT GENERATINGCFM}
  1559.     INLINE $303C, $00D7, $AAAA;
  1560.     {$ENDC}
  1561. FUNCTION UpdateMovieResource(theMovie: Movie; resRefNum: INTEGER; resId: INTEGER; resName: Str255): OSErr;
  1562.     {$IFC NOT GENERATINGCFM}
  1563.     INLINE $303C, $00D8, $AAAA;
  1564.     {$ENDC}
  1565. FUNCTION RemoveMovieResource(resRefNum: INTEGER; resId: INTEGER): OSErr;
  1566.     {$IFC NOT GENERATINGCFM}
  1567.     INLINE $303C, $0176, $AAAA;
  1568.     {$ENDC}
  1569. FUNCTION HasMovieChanged(theMovie: Movie): BOOLEAN;
  1570.     {$IFC NOT GENERATINGCFM}
  1571.     INLINE $303C, $00D9, $AAAA;
  1572.     {$ENDC}
  1573. PROCEDURE ClearMovieChanged(theMovie: Movie);
  1574.     {$IFC NOT GENERATINGCFM}
  1575.     INLINE $303C, $0113, $AAAA;
  1576.     {$ENDC}
  1577. FUNCTION SetMovieDefaultDataRef(theMovie: Movie; dataRef: Handle; dataRefType: OSType): OSErr;
  1578.     {$IFC NOT GENERATINGCFM}
  1579.     INLINE $303C, $01C1, $AAAA;
  1580.     {$ENDC}
  1581. FUNCTION GetMovieDefaultDataRef(theMovie: Movie; VAR dataRef: Handle; VAR dataRefType: OSType): OSErr;
  1582.     {$IFC NOT GENERATINGCFM}
  1583.     INLINE $303C, $01D2, $AAAA;
  1584.     {$ENDC}
  1585. FUNCTION SetMovieColorTable(theMovie: Movie; ctab: CTabHandle): OSErr;
  1586.     {$IFC NOT GENERATINGCFM}
  1587.     INLINE $303C, $0205, $AAAA;
  1588.     {$ENDC}
  1589. FUNCTION GetMovieColorTable(theMovie: Movie; VAR ctab: CTabHandle): OSErr;
  1590.     {$IFC NOT GENERATINGCFM}
  1591.     INLINE $303C, $0206, $AAAA;
  1592.     {$ENDC}
  1593. PROCEDURE FlattenMovie(theMovie: Movie; movieFlattenFlags: LONGINT; {CONST}VAR theFile: FSSpec; creator: OSType; scriptTag: ScriptCode; createMovieFileFlags: LONGINT; VAR resId: INTEGER; resName: Str255);
  1594.     {$IFC NOT GENERATINGCFM}
  1595.     INLINE $303C, $019B, $AAAA;
  1596.     {$ENDC}
  1597. FUNCTION FlattenMovieData(theMovie: Movie; movieFlattenFlags: LONGINT; {CONST}VAR theFile: FSSpec; creator: OSType; scriptTag: ScriptCode; createMovieFileFlags: LONGINT): Movie;
  1598.     {$IFC NOT GENERATINGCFM}
  1599.     INLINE $303C, $019C, $AAAA;
  1600.     {$ENDC}
  1601. PROCEDURE SetMovieProgressProc(theMovie: Movie; p: MovieProgressUPP; refcon: LONGINT);
  1602.     {$IFC NOT GENERATINGCFM}
  1603.     INLINE $303C, $019A, $AAAA;
  1604.     {$ENDC}
  1605. {
  1606. ************************
  1607. * Video Media routines
  1608. *************************
  1609. }
  1610. FUNCTION GetVideoMediaGraphicsMode(mh: MediaHandler; VAR graphicsMode: LONGINT; VAR opColor: RGBColor): HandlerError;
  1611.     {$IFC NOT GENERATINGCFM}
  1612.     INLINE $2F3C, $0008, $0101, $7000, $A82A;
  1613.     {$ENDC}
  1614. FUNCTION SetVideoMediaGraphicsMode(mh: MediaHandler; graphicsMode: LONGINT; {CONST}VAR opColor: RGBColor): HandlerError;
  1615.     {$IFC NOT GENERATINGCFM}
  1616.     INLINE $2F3C, $0008, $0102, $7000, $A82A;
  1617.     {$ENDC}
  1618. {  use these two routines at your own peril }
  1619. FUNCTION ResetVideoMediaStatistics(mh: MediaHandler): HandlerError;
  1620.     {$IFC NOT GENERATINGCFM}
  1621.     INLINE $2F3C, $0000, $0105, $7000, $A82A;
  1622.     {$ENDC}
  1623. FUNCTION GetVideoMediaStatistics(mh: MediaHandler): Fixed;
  1624.     {$IFC NOT GENERATINGCFM}
  1625.     INLINE $2F3C, $0000, $0106, $7000, $A82A;
  1626.     {$ENDC}
  1627. {
  1628. ************************
  1629. * Sound Media routines
  1630. *************************
  1631. }
  1632. FUNCTION GetSoundMediaBalance(mh: MediaHandler; VAR balance: INTEGER): HandlerError;
  1633.     {$IFC NOT GENERATINGCFM}
  1634.     INLINE $2F3C, $0004, $0101, $7000, $A82A;
  1635.     {$ENDC}
  1636. FUNCTION SetSoundMediaBalance(mh: MediaHandler; balance: INTEGER): HandlerError;
  1637.     {$IFC NOT GENERATINGCFM}
  1638.     INLINE $2F3C, $0002, $0102, $7000, $A82A;
  1639.     {$ENDC}
  1640. {
  1641. ************************
  1642. * Sprite Media routines
  1643. *************************
  1644. }
  1645. {  flags for HitTestSpriteMedia  }
  1646.  
  1647. CONST
  1648.     spriteHitTestBounds            = $00000001;                    {     point must only be within sprite's bounding box }
  1649.     spriteHitTestImage            = $00000002;                    {   point must be within the shape of the sprite's image }
  1650.  
  1651. {  atom types for sprite media  }
  1652.     kSpriteAtomType                = 'sprt';
  1653.     kSpriteImagesContainerAtomType = 'imct';
  1654.     kSpriteImageAtomType        = 'imag';
  1655.     kSpriteImageDataAtomType    = 'imda';
  1656.     kSpriteSharedDataAtomType    = 'dflt';
  1657.     kSpriteNameAtomType            = 'name';
  1658.  
  1659. FUNCTION SetSpriteMediaSpriteProperty(mh: MediaHandler; spriteIndex: INTEGER; propertyType: LONGINT; propertyValue: UNIV Ptr): ComponentResult;
  1660.     {$IFC NOT GENERATINGCFM}
  1661.     INLINE $2F3C, $000A, $0101, $7000, $A82A;
  1662.     {$ENDC}
  1663. FUNCTION GetSpriteMediaSpriteProperty(mh: MediaHandler; spriteIndex: INTEGER; propertyType: LONGINT; propertyValue: UNIV Ptr): ComponentResult;
  1664.     {$IFC NOT GENERATINGCFM}
  1665.     INLINE $2F3C, $000A, $0102, $7000, $A82A;
  1666.     {$ENDC}
  1667. FUNCTION HitTestSpriteMedia(mh: MediaHandler; flags: LONGINT; loc: Point; VAR spriteHitIndex: INTEGER): ComponentResult;
  1668.     {$IFC NOT GENERATINGCFM}
  1669.     INLINE $2F3C, $000C, $0103, $7000, $A82A;
  1670.     {$ENDC}
  1671. FUNCTION CountSpriteMediaSprites(mh: MediaHandler; VAR numSprites: INTEGER): ComponentResult;
  1672.     {$IFC NOT GENERATINGCFM}
  1673.     INLINE $2F3C, $0004, $0104, $7000, $A82A;
  1674.     {$ENDC}
  1675. FUNCTION CountSpriteMediaImages(mh: MediaHandler; VAR numImages: INTEGER): ComponentResult;
  1676.     {$IFC NOT GENERATINGCFM}
  1677.     INLINE $2F3C, $0004, $0105, $7000, $A82A;
  1678.     {$ENDC}
  1679. FUNCTION GetSpriteMediaIndImageDescription(mh: MediaHandler; imageIndex: INTEGER; imageDescription: ImageDescriptionHandle): ComponentResult;
  1680.     {$IFC NOT GENERATINGCFM}
  1681.     INLINE $2F3C, $0006, $0106, $7000, $A82A;
  1682.     {$ENDC}
  1683. FUNCTION GetDisplayedSampleNumber(mh: MediaHandler; VAR sampleNum: LONGINT): ComponentResult;
  1684.     {$IFC NOT GENERATINGCFM}
  1685.     INLINE $2F3C, $0007, $0107, $7000, $A82A;
  1686.     {$ENDC}
  1687. {
  1688. ************************
  1689. * Text Media routines
  1690. *************************
  1691. }
  1692. {  Return displayFlags for TextProc  }
  1693.  
  1694. CONST
  1695.     txtProcDefaultDisplay        = 0;                            {     Use the media's default }
  1696.     txtProcDontDisplay            = 1;                            {     Don't display the text }
  1697.     txtProcDoDisplay            = 2;                            {     Do display the text }
  1698.  
  1699. FUNCTION SetTextProc(mh: MediaHandler; TextProc: TextMediaUPP; refcon: LONGINT): ComponentResult;
  1700.     {$IFC NOT GENERATINGCFM}
  1701.     INLINE $2F3C, $0008, $0101, $7000, $A82A;
  1702.     {$ENDC}
  1703. FUNCTION AddTextSample(mh: MediaHandler; text: Ptr; size: LONGINT; fontNumber: INTEGER; fontSize: INTEGER; textFace: ByteParameter; VAR textColor: RGBColor; VAR backColor: RGBColor; textJustification: INTEGER; VAR textBox: Rect; displayFlags: LONGINT; scrollDelay: TimeValue; hiliteStart: INTEGER; hiliteEnd: INTEGER; VAR rgbHiliteColor: RGBColor; duration: TimeValue; VAR sampleTime: TimeValue): ComponentResult;
  1704.     {$IFC NOT GENERATINGCFM}
  1705.     INLINE $2F3C, $0034, $0102, $7000, $A82A;
  1706.     {$ENDC}
  1707. FUNCTION AddTESample(mh: MediaHandler; hTE: TEHandle; VAR backColor: RGBColor; textJustification: INTEGER; VAR textBox: Rect; displayFlags: LONGINT; scrollDelay: TimeValue; hiliteStart: INTEGER; hiliteEnd: INTEGER; VAR rgbHiliteColor: RGBColor; duration: TimeValue; VAR sampleTime: TimeValue): ComponentResult;
  1708.     {$IFC NOT GENERATINGCFM}
  1709.     INLINE $2F3C, $0026, $0103, $7000, $A82A;
  1710.     {$ENDC}
  1711. FUNCTION AddHiliteSample(mh: MediaHandler; hiliteStart: INTEGER; hiliteEnd: INTEGER; VAR rgbHiliteColor: RGBColor; duration: TimeValue; VAR sampleTime: TimeValue): ComponentResult;
  1712.     {$IFC NOT GENERATINGCFM}
  1713.     INLINE $2F3C, $0010, $0104, $7000, $A82A;
  1714.     {$ENDC}
  1715.  
  1716. CONST
  1717.     findTextEdgeOK                = $01;                            {  Okay to find text at specified sample time }
  1718.     findTextCaseSensitive        = $02;                            {  Case sensitive search }
  1719.     findTextReverseSearch        = $04;                            {  Search from sampleTime backwards }
  1720.     findTextWrapAround            = $08;                            {  Wrap search when beginning or end of movie is hit }
  1721.     findTextUseOffset            = $10;                            {  Begin search at the given character offset into sample rather than edge }
  1722.  
  1723. FUNCTION FindNextText(mh: MediaHandler; text: Ptr; size: LONGINT; findFlags: INTEGER; startTime: TimeValue; VAR foundTime: TimeValue; VAR foundDuration: TimeValue; VAR offset: LONGINT): ComponentResult;
  1724.     {$IFC NOT GENERATINGCFM}
  1725.     INLINE $2F3C, $001A, $0105, $7000, $A82A;
  1726.     {$ENDC}
  1727. FUNCTION HiliteTextSample(mh: MediaHandler; sampleTime: TimeValue; hiliteStart: INTEGER; hiliteEnd: INTEGER; VAR rgbHiliteColor: RGBColor): ComponentResult;
  1728.     {$IFC NOT GENERATINGCFM}
  1729.     INLINE $2F3C, $000C, $0106, $7000, $A82A;
  1730.     {$ENDC}
  1731.  
  1732. CONST
  1733.     dropShadowOffsetType        = 'drpo';
  1734.     dropShadowTranslucencyType    = 'drpt';
  1735.  
  1736. FUNCTION SetTextSampleData(mh: MediaHandler; data: UNIV Ptr; dataType: OSType): ComponentResult;
  1737.     {$IFC NOT GENERATINGCFM}
  1738.     INLINE $2F3C, $0008, $0107, $7000, $A82A;
  1739.     {$ENDC}
  1740. FUNCTION MovieSearchText(theMovie: Movie; text: Ptr; size: LONGINT; searchFlags: LONGINT; VAR searchTrack: Track; VAR searchTime: TimeValue; VAR searchOffset: LONGINT): OSErr;
  1741.     {$IFC NOT GENERATINGCFM}
  1742.     INLINE $303C, $0207, $AAAA;
  1743.     {$ENDC}
  1744. PROCEDURE GetPosterBox(theMovie: Movie; VAR boxRect: Rect);
  1745.     {$IFC NOT GENERATINGCFM}
  1746.     INLINE $303C, $016F, $AAAA;
  1747.     {$ENDC}
  1748. PROCEDURE SetPosterBox(theMovie: Movie; {CONST}VAR boxRect: Rect);
  1749.     {$IFC NOT GENERATINGCFM}
  1750.     INLINE $303C, $0170, $AAAA;
  1751.     {$ENDC}
  1752. FUNCTION GetMovieSegmentDisplayBoundsRgn(theMovie: Movie; time: TimeValue; duration: TimeValue): RgnHandle;
  1753.     {$IFC NOT GENERATINGCFM}
  1754.     INLINE $303C, $016C, $AAAA;
  1755.     {$ENDC}
  1756. FUNCTION GetTrackSegmentDisplayBoundsRgn(theTrack: Track; time: TimeValue; duration: TimeValue): RgnHandle;
  1757.     {$IFC NOT GENERATINGCFM}
  1758.     INLINE $303C, $016B, $AAAA;
  1759.     {$ENDC}
  1760. PROCEDURE SetMovieCoverProcs(theMovie: Movie; uncoverProc: MovieRgnCoverUPP; coverProc: MovieRgnCoverUPP; refcon: LONGINT);
  1761.     {$IFC NOT GENERATINGCFM}
  1762.     INLINE $303C, $0179, $AAAA;
  1763.     {$ENDC}
  1764. FUNCTION GetMovieCoverProcs(theMovie: Movie; VAR uncoverProc: MovieRgnCoverUPP; VAR coverProc: MovieRgnCoverUPP; VAR refcon: LONGINT): OSErr;
  1765.     {$IFC NOT GENERATINGCFM}
  1766.     INLINE $303C, $01DD, $AAAA;
  1767.     {$ENDC}
  1768. FUNCTION GetTrackStatus(theTrack: Track): ComponentResult;
  1769.     {$IFC NOT GENERATINGCFM}
  1770.     INLINE $303C, $0172, $AAAA;
  1771.     {$ENDC}
  1772. FUNCTION GetMovieStatus(theMovie: Movie; VAR firstProblemTrack: Track): ComponentResult;
  1773.     {$IFC NOT GENERATINGCFM}
  1774.     INLINE $303C, $0173, $AAAA;
  1775.     {$ENDC}
  1776. {
  1777. ***
  1778.     Movie Controller support routines
  1779. ***
  1780. }
  1781. FUNCTION NewMovieController(theMovie: Movie; {CONST}VAR movieRect: Rect; someFlags: LONGINT): ComponentInstance;
  1782.     {$IFC NOT GENERATINGCFM}
  1783.     INLINE $303C, $018A, $AAAA;
  1784.     {$ENDC}
  1785. PROCEDURE DisposeMovieController(mc: ComponentInstance);
  1786.     {$IFC NOT GENERATINGCFM}
  1787.     INLINE $303C, $018B, $AAAA;
  1788.     {$ENDC}
  1789. {$ENDC}
  1790. {$IFC FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED }
  1791. PROCEDURE ShowMovieInformation(theMovie: Movie; filterProc: ModalFilterUPP; refCon: LONGINT);
  1792.     {$IFC NOT GENERATINGCFM}
  1793.     INLINE $303C, $0209, $AAAA;
  1794.     {$ENDC}
  1795. {$ENDC}
  1796. {$IFC FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE }
  1797. {
  1798. ****
  1799.     Scrap routines
  1800. ****
  1801. }
  1802. FUNCTION PutMovieOnScrap(theMovie: Movie; movieScrapFlags: LONGINT): OSErr;
  1803.     {$IFC NOT GENERATINGCFM}
  1804.     INLINE $303C, $018C, $AAAA;
  1805.     {$ENDC}
  1806. FUNCTION NewMovieFromScrap(newMovieFlags: LONGINT): Movie;
  1807.     {$IFC NOT GENERATINGCFM}
  1808.     INLINE $303C, $018D, $AAAA;
  1809.     {$ENDC}
  1810. {
  1811. ****
  1812.     DataRef routines
  1813. ****
  1814. }
  1815. FUNCTION GetMediaDataRef(theMedia: Media; index: INTEGER; VAR dataRef: Handle; VAR dataRefType: OSType; VAR dataRefAttributes: LONGINT): OSErr;
  1816.     {$IFC NOT GENERATINGCFM}
  1817.     INLINE $303C, $0197, $AAAA;
  1818.     {$ENDC}
  1819. FUNCTION SetMediaDataRef(theMedia: Media; index: INTEGER; dataRef: Handle; dataRefType: OSType): OSErr;
  1820.     {$IFC NOT GENERATINGCFM}
  1821.     INLINE $303C, $01C9, $AAAA;
  1822.     {$ENDC}
  1823. FUNCTION SetMediaDataRefAttributes(theMedia: Media; index: INTEGER; dataRefAttributes: LONGINT): OSErr;
  1824.     {$IFC NOT GENERATINGCFM}
  1825.     INLINE $303C, $01CA, $AAAA;
  1826.     {$ENDC}
  1827. FUNCTION AddMediaDataRef(theMedia: Media; VAR index: INTEGER; dataRef: Handle; dataRefType: OSType): OSErr;
  1828.     {$IFC NOT GENERATINGCFM}
  1829.     INLINE $303C, $0198, $AAAA;
  1830.     {$ENDC}
  1831. FUNCTION GetMediaDataRefCount(theMedia: Media; VAR count: INTEGER): OSErr;
  1832.     {$IFC NOT GENERATINGCFM}
  1833.     INLINE $303C, $0199, $AAAA;
  1834.     {$ENDC}
  1835. {
  1836. ****
  1837.     Playback hint routines
  1838. ****
  1839. }
  1840. PROCEDURE SetMoviePlayHints(theMovie: Movie; flags: LONGINT; flagsMask: LONGINT);
  1841.     {$IFC NOT GENERATINGCFM}
  1842.     INLINE $303C, $01A1, $AAAA;
  1843.     {$ENDC}
  1844. PROCEDURE SetMediaPlayHints(theMedia: Media; flags: LONGINT; flagsMask: LONGINT);
  1845.     {$IFC NOT GENERATINGCFM}
  1846.     INLINE $303C, $01A2, $AAAA;
  1847.     {$ENDC}
  1848. {
  1849. ****
  1850.     Load time track hints
  1851. ****
  1852. }
  1853.  
  1854. CONST
  1855.     preloadAlways                = $00000001;
  1856.     preloadOnlyIfEnabled        = $00000002;
  1857.  
  1858. PROCEDURE SetTrackLoadSettings(theTrack: Track; preloadTime: TimeValue; preloadDuration: TimeValue; preloadFlags: LONGINT; defaultHints: LONGINT);
  1859.     {$IFC NOT GENERATINGCFM}
  1860.     INLINE $303C, $01E3, $AAAA;
  1861.     {$ENDC}
  1862. PROCEDURE GetTrackLoadSettings(theTrack: Track; VAR preloadTime: TimeValue; VAR preloadDuration: TimeValue; VAR preloadFlags: LONGINT; VAR defaultHints: LONGINT);
  1863.     {$IFC NOT GENERATINGCFM}
  1864.     INLINE $303C, $01E4, $AAAA;
  1865.     {$ENDC}
  1866. {
  1867. ****
  1868.     Big screen TV
  1869. ****
  1870. }
  1871.  
  1872. CONST
  1873.     fullScreenHideCursor        = $00000001;
  1874.     fullScreenAllowEvents        = $00000002;
  1875.     fullScreenDontChangeMenuBar    = $00000004;
  1876.     fullScreenPreflightSize        = $00000008;
  1877.  
  1878. FUNCTION BeginFullScreen(VAR restoreState: Ptr; whichGD: GDHandle; VAR desiredWidth: INTEGER; VAR desiredHeight: INTEGER; VAR newWindow: WindowPtr; VAR eraseColor: RGBColor; flags: LONGINT): OSErr;
  1879.     {$IFC NOT GENERATINGCFM}
  1880.     INLINE $303C, $0233, $AAAA;
  1881.     {$ENDC}
  1882. FUNCTION EndFullScreen(fullState: Ptr; flags: LONGINT): OSErr;
  1883.     {$IFC NOT GENERATINGCFM}
  1884.     INLINE $303C, $0234, $AAAA;
  1885.     {$ENDC}
  1886. {
  1887. ****
  1888.     Sprite Toolbox
  1889. ****
  1890. }
  1891.  
  1892. CONST
  1893.     kBackgroundSpriteLayerNum    = 32767;
  1894.  
  1895. {   Sprite Properties }
  1896.     kSpritePropertyMatrix        = 1;
  1897.     kSpritePropertyImageDescription = 2;
  1898.     kSpritePropertyImageDataPtr    = 3;
  1899.     kSpritePropertyVisible        = 4;
  1900.     kSpritePropertyLayer        = 5;
  1901.     kSpritePropertyImageIndex    = 100;
  1902.     kSpriteTrackPropertyBackgroundColor = 101;
  1903.     kSpriteTrackPropertyOffscreenBitDepth = 102;
  1904.     kSpriteTrackPropertySampleFormat = 103;
  1905.  
  1906. {  flagsIn for SpriteWorldIdle }
  1907.     kOnlyDrawToSpriteWorld        = $00000001;
  1908.  
  1909. {  flagsOut for SpriteWorldIdle }
  1910.     kSpriteWorldDidDraw            = $00000001;
  1911.  
  1912. {  flags for sprite track sample format }
  1913.     kKeyFrameAndSingleOverride    = $00000002;
  1914.     kKeyFrameAndAllOverrides    = $00000004;
  1915.  
  1916. FUNCTION NewSpriteWorld(VAR newSpriteWorld: SpriteWorld; destination: GWorldPtr; spriteLayer: GWorldPtr; VAR backgroundColor: RGBColor; background: GWorldPtr): OSErr;
  1917.     {$IFC NOT GENERATINGCFM}
  1918.     INLINE $303C, $0239, $AAAA;
  1919.     {$ENDC}
  1920. PROCEDURE DisposeSpriteWorld(theSpriteWorld: SpriteWorld);
  1921.     {$IFC NOT GENERATINGCFM}
  1922.     INLINE $303C, $023A, $AAAA;
  1923.     {$ENDC}
  1924. FUNCTION SetSpriteWorldClip(theSpriteWorld: SpriteWorld; clipRgn: RgnHandle): OSErr;
  1925.     {$IFC NOT GENERATINGCFM}
  1926.     INLINE $303C, $023B, $AAAA;
  1927.     {$ENDC}
  1928. FUNCTION SetSpriteWorldMatrix(theSpriteWorld: SpriteWorld; {CONST}VAR matrix: MatrixRecord): OSErr;
  1929.     {$IFC NOT GENERATINGCFM}
  1930.     INLINE $303C, $023C, $AAAA;
  1931.     {$ENDC}
  1932. FUNCTION SpriteWorldIdle(theSpriteWorld: SpriteWorld; flagsIn: LONGINT; VAR flagsOut: LONGINT): OSErr;
  1933.     {$IFC NOT GENERATINGCFM}
  1934.     INLINE $303C, $023D, $AAAA;
  1935.     {$ENDC}
  1936. FUNCTION InvalidateSpriteWorld(theSpriteWorld: SpriteWorld; VAR invalidArea: Rect): OSErr;
  1937.     {$IFC NOT GENERATINGCFM}
  1938.     INLINE $303C, $023E, $AAAA;
  1939.     {$ENDC}
  1940. FUNCTION SpriteWorldHitTest(theSpriteWorld: SpriteWorld; flags: LONGINT; loc: Point; VAR spriteHit: Sprite): OSErr;
  1941.     {$IFC NOT GENERATINGCFM}
  1942.     INLINE $303C, $0246, $AAAA;
  1943.     {$ENDC}
  1944. FUNCTION SpriteHitTest(theSprite: Sprite; flags: LONGINT; loc: Point; VAR wasHit: BOOLEAN): OSErr;
  1945.     {$IFC NOT GENERATINGCFM}
  1946.     INLINE $303C, $0247, $AAAA;
  1947.     {$ENDC}
  1948. PROCEDURE DisposeAllSprites(theSpriteWorld: SpriteWorld);
  1949.     {$IFC NOT GENERATINGCFM}
  1950.     INLINE $303C, $023F, $AAAA;
  1951.     {$ENDC}
  1952. FUNCTION NewSprite(VAR newSprite: Sprite; itsSpriteWorld: SpriteWorld; idh: ImageDescriptionHandle; imageDataPtr: Ptr; VAR matrix: MatrixRecord; visible: BOOLEAN; layer: INTEGER): OSErr;
  1953.     {$IFC NOT GENERATINGCFM}
  1954.     INLINE $303C, $0240, $AAAA;
  1955.     {$ENDC}
  1956. PROCEDURE DisposeSprite(theSprite: Sprite);
  1957.     {$IFC NOT GENERATINGCFM}
  1958.     INLINE $303C, $0241, $AAAA;
  1959.     {$ENDC}
  1960. PROCEDURE InvalidateSprite(theSprite: Sprite);
  1961.     {$IFC NOT GENERATINGCFM}
  1962.     INLINE $303C, $0242, $AAAA;
  1963.     {$ENDC}
  1964. FUNCTION SetSpriteProperty(theSprite: Sprite; propertyType: LONGINT; propertyValue: UNIV Ptr): OSErr;
  1965.     {$IFC NOT GENERATINGCFM}
  1966.     INLINE $303C, $0243, $AAAA;
  1967.     {$ENDC}
  1968. FUNCTION GetSpriteProperty(theSprite: Sprite; propertyType: LONGINT; propertyValue: UNIV Ptr): OSErr;
  1969.     {$IFC NOT GENERATINGCFM}
  1970.     INLINE $303C, $0244, $AAAA;
  1971.     {$ENDC}
  1972. {
  1973. ****
  1974.     QT Atom Data Support
  1975. ****
  1976. }
  1977.  
  1978. CONST
  1979.     kParentAtomIsContainer        = 0;
  1980.  
  1981. {  create and dispose QTAtomContainer objects }
  1982. FUNCTION QTNewAtomContainer(VAR atomData: QTAtomContainer): OSErr;
  1983.     {$IFC NOT GENERATINGCFM}
  1984.     INLINE $303C, $020C, $AAAA;
  1985.     {$ENDC}
  1986. FUNCTION QTDisposeAtomContainer(atomData: QTAtomContainer): OSErr;
  1987.     {$IFC NOT GENERATINGCFM}
  1988.     INLINE $303C, $020D, $AAAA;
  1989.     {$ENDC}
  1990. {  locating nested atoms within QTAtomContainer container }
  1991. FUNCTION QTGetNextChildType(container: QTAtomContainer; parentAtom: QTAtom; currentChildType: QTAtomType): QTAtomType;
  1992.     {$IFC NOT GENERATINGCFM}
  1993.     INLINE $303C, $020E, $AAAA;
  1994.     {$ENDC}
  1995. FUNCTION QTCountChildrenOfType(container: QTAtomContainer; parentAtom: QTAtom; childType: QTAtomType): INTEGER;
  1996.     {$IFC NOT GENERATINGCFM}
  1997.     INLINE $303C, $020F, $AAAA;
  1998.     {$ENDC}
  1999. FUNCTION QTFindChildByIndex(container: QTAtomContainer; parentAtom: QTAtom; atomType: QTAtomType; index: INTEGER; VAR id: QTAtomID): QTAtom;
  2000.     {$IFC NOT GENERATINGCFM}
  2001.     INLINE $303C, $0210, $AAAA;
  2002.     {$ENDC}
  2003. FUNCTION QTFindChildByID(container: QTAtomContainer; parentAtom: QTAtom; atomType: QTAtomType; id: QTAtomID; VAR index: INTEGER): QTAtom;
  2004.     {$IFC NOT GENERATINGCFM}
  2005.     INLINE $303C, $021D, $AAAA;
  2006.     {$ENDC}
  2007. FUNCTION QTNextChildAnyType(container: QTAtomContainer; parentAtom: QTAtom; currentChild: QTAtom; VAR nextChild: QTAtom): OSErr;
  2008.     {$IFC NOT GENERATINGCFM}
  2009.     INLINE $303C, $0200, $AAAA;
  2010.     {$ENDC}
  2011. {  set a leaf atom's data }
  2012. FUNCTION QTSetAtomData(container: QTAtomContainer; atom: QTAtom; dataSize: LONGINT; atomData: UNIV Ptr): OSErr;
  2013.     {$IFC NOT GENERATINGCFM}
  2014.     INLINE $303C, $0211, $AAAA;
  2015.     {$ENDC}
  2016. {  extracting data }
  2017. FUNCTION QTCopyAtomDataToHandle(container: QTAtomContainer; atom: QTAtom; targetHandle: Handle): OSErr;
  2018.     {$IFC NOT GENERATINGCFM}
  2019.     INLINE $303C, $0212, $AAAA;
  2020.     {$ENDC}
  2021. FUNCTION QTCopyAtomDataToPtr(container: QTAtomContainer; atom: QTAtom; sizeOrLessOK: BOOLEAN; size: LONGINT; targetPtr: UNIV Ptr; VAR actualSize: LONGINT): OSErr;
  2022.     {$IFC NOT GENERATINGCFM}
  2023.     INLINE $303C, $0213, $AAAA;
  2024.     {$ENDC}
  2025. FUNCTION QTGetAtomTypeAndID(container: QTAtomContainer; atom: QTAtom; VAR atomType: QTAtomType; VAR id: QTAtomID): OSErr;
  2026.     {$IFC NOT GENERATINGCFM}
  2027.     INLINE $303C, $0232, $AAAA;
  2028.     {$ENDC}
  2029. {  extract a copy of an atom and all of it's children, caller disposes }
  2030. FUNCTION QTCopyAtom(container: QTAtomContainer; atom: QTAtom; VAR targetContainer: QTAtomContainer): OSErr;
  2031.     {$IFC NOT GENERATINGCFM}
  2032.     INLINE $303C, $0214, $AAAA;
  2033.     {$ENDC}
  2034. {  obtaining direct reference to atom data }
  2035. FUNCTION QTLockContainer(container: QTAtomContainer): OSErr;
  2036.     {$IFC NOT GENERATINGCFM}
  2037.     INLINE $303C, $0215, $AAAA;
  2038.     {$ENDC}
  2039. FUNCTION QTGetAtomDataPtr(container: QTAtomContainer; atom: QTAtom; VAR dataSize: LONGINT; VAR atomData: Ptr): OSErr;
  2040.     {$IFC NOT GENERATINGCFM}
  2041.     INLINE $303C, $0216, $AAAA;
  2042.     {$ENDC}
  2043. FUNCTION QTUnlockContainer(container: QTAtomContainer): OSErr;
  2044.     {$IFC NOT GENERATINGCFM}
  2045.     INLINE $303C, $0217, $AAAA;
  2046.     {$ENDC}
  2047. {
  2048.  building QTAtomContainer trees
  2049.  creates and inserts new atom at specified index, existing atoms at or after index are moved toward end of list
  2050.  used for Top-Down tree creation
  2051. }
  2052. FUNCTION QTInsertChild(container: QTAtomContainer; parentAtom: QTAtom; atomType: QTAtomType; id: QTAtomID; index: INTEGER; dataSize: LONGINT; data: UNIV Ptr; VAR newAtom: QTAtom): OSErr;
  2053.     {$IFC NOT GENERATINGCFM}
  2054.     INLINE $303C, $0218, $AAAA;
  2055.     {$ENDC}
  2056. {  inserts children from childrenContainer as children of parentAtom }
  2057. FUNCTION QTInsertChildren(container: QTAtomContainer; parentAtom: QTAtom; childrenContainer: QTAtomContainer): OSErr;
  2058.     {$IFC NOT GENERATINGCFM}
  2059.     INLINE $303C, $0219, $AAAA;
  2060.     {$ENDC}
  2061. {  destruction }
  2062. FUNCTION QTRemoveAtom(container: QTAtomContainer; atom: QTAtom): OSErr;
  2063.     {$IFC NOT GENERATINGCFM}
  2064.     INLINE $303C, $021A, $AAAA;
  2065.     {$ENDC}
  2066. FUNCTION QTRemoveChildren(container: QTAtomContainer; atom: QTAtom): OSErr;
  2067.     {$IFC NOT GENERATINGCFM}
  2068.     INLINE $303C, $021B, $AAAA;
  2069.     {$ENDC}
  2070. {  replacement must be same type as target }
  2071. FUNCTION QTReplaceAtom(targetContainer: QTAtomContainer; targetAtom: QTAtom; replacementContainer: QTAtomContainer; replacementAtom: QTAtom): OSErr;
  2072.     {$IFC NOT GENERATINGCFM}
  2073.     INLINE $303C, $021C, $AAAA;
  2074.     {$ENDC}
  2075. FUNCTION QTSwapAtoms(container: QTAtomContainer; atom1: QTAtom; atom2: QTAtom): OSErr;
  2076.     {$IFC NOT GENERATINGCFM}
  2077.     INLINE $303C, $01FF, $AAAA;
  2078.     {$ENDC}
  2079. FUNCTION QTSetAtomID(container: QTAtomContainer; atom: QTAtom; newID: QTAtomID): OSErr;
  2080.     {$IFC NOT GENERATINGCFM}
  2081.     INLINE $303C, $0231, $AAAA;
  2082.     {$ENDC}
  2083. FUNCTION SetMediaPropertyAtom(theMedia: Media; propertyAtom: QTAtomContainer): OSErr;
  2084.     {$IFC NOT GENERATINGCFM}
  2085.     INLINE $303C, $022E, $AAAA;
  2086.     {$ENDC}
  2087. FUNCTION GetMediaPropertyAtom(theMedia: Media; VAR propertyAtom: QTAtomContainer): OSErr;
  2088.     {$IFC NOT GENERATINGCFM}
  2089.     INLINE $303C, $022F, $AAAA;
  2090.     {$ENDC}
  2091.  
  2092. CONST
  2093.     MovieControllerComponentType = 'play';
  2094.  
  2095.  
  2096. TYPE
  2097.     MovieController                        = ComponentInstance;
  2098.  
  2099. CONST
  2100.     mcActionIdle                = 1;                            {  no param }
  2101.     mcActionDraw                = 2;                            {  param is WindowPtr }
  2102.     mcActionActivate            = 3;                            {  no param }
  2103.     mcActionDeactivate            = 4;                            {  no param }
  2104.     mcActionMouseDown            = 5;                            {  param is pointer to EventRecord }
  2105.     mcActionKey                    = 6;                            {  param is pointer to EventRecord }
  2106.     mcActionPlay                = 8;                            {  param is Fixed, play rate }
  2107.     mcActionGoToTime            = 12;                            {  param is TimeRecord }
  2108.     mcActionSetVolume            = 14;                            {  param is a short }
  2109.     mcActionGetVolume            = 15;                            {  param is pointer to a short }
  2110.     mcActionStep                = 18;                            {  param is number of steps (short) }
  2111.     mcActionSetLooping            = 21;                            {  param is Boolean }
  2112.     mcActionGetLooping            = 22;                            {  param is pointer to a Boolean }
  2113.     mcActionSetLoopIsPalindrome    = 23;                            {  param is Boolean }
  2114.     mcActionGetLoopIsPalindrome    = 24;                            {  param is pointer to a Boolean }
  2115.     mcActionSetGrowBoxBounds    = 25;                            {  param is a Rect }
  2116.     mcActionControllerSizeChanged = 26;                            {  no param }
  2117.     mcActionSetSelectionBegin    = 29;                            {  param is TimeRecord }
  2118.     mcActionSetSelectionDuration = 30;                            {  param is TimeRecord, action only taken on set-duration }
  2119.     mcActionSetKeysEnabled        = 32;                            {  param is Boolean }
  2120.     mcActionGetKeysEnabled        = 33;                            {  param is pointer to Boolean }
  2121.     mcActionSetPlaySelection    = 34;                            {  param is Boolean }
  2122.     mcActionGetPlaySelection    = 35;                            {  param is pointer to Boolean }
  2123.     mcActionSetUseBadge            = 36;                            {  param is Boolean }
  2124.     mcActionGetUseBadge            = 37;                            {  param is pointer to Boolean }
  2125.     mcActionSetFlags            = 38;                            {  param is long of flags }
  2126.     mcActionGetFlags            = 39;                            {  param is pointer to a long of flags }
  2127.     mcActionSetPlayEveryFrame    = 40;                            {  param is Boolean }
  2128.     mcActionGetPlayEveryFrame    = 41;                            {  param is pointer to Boolean }
  2129.     mcActionGetPlayRate            = 42;                            {  param is pointer to Fixed }
  2130.     mcActionShowBalloon            = 43;                            {  param is a pointer to a boolean. set to false to stop balloon }
  2131.     mcActionBadgeClick            = 44;                            {  param is pointer to Boolean. set to false to ignore click }
  2132.     mcActionMovieClick            = 45;                            {  param is pointer to event record. change ``what'' to nullEvt to kill click }
  2133.     mcActionSuspend                = 46;                            {  no param }
  2134.     mcActionResume                = 47;                            {  no param }
  2135.     mcActionSetControllerKeysEnabled = 48;                        {  param is Boolean }
  2136.     mcActionGetTimeSliderRect    = 49;                            {  param is pointer to rect }
  2137.     mcActionMovieEdited            = 50;                            {  no param }
  2138.     mcActionGetDragEnabled        = 51;                            {  param is pointer to Boolean }
  2139.     mcActionSetDragEnabled        = 52;                            {  param is Boolean }
  2140.     mcActionGetSelectionBegin    = 53;                            {  param is TimeRecord }
  2141.     mcActionGetSelectionDuration = 54;                            {  param is TimeRecord }
  2142.     mcActionPrerollAndPlay        = 55;                            {  param is Fixed, play rate }
  2143.     mcActionGetCursorSettingEnabled = 56;                        {  param is pointer to Boolean }
  2144.     mcActionSetCursorSettingEnabled = 57;                        {  param is Boolean }
  2145.  
  2146.  
  2147. TYPE
  2148.     mcAction                            = INTEGER;
  2149.  
  2150. CONST
  2151.     mcFlagSuppressMovieFrame    = $01;
  2152.     mcFlagSuppressStepButtons    = $02;
  2153.     mcFlagSuppressSpeakerButton    = $04;
  2154.     mcFlagsUseWindowPalette        = $08;
  2155.     mcFlagsDontInvalidate        = $10;
  2156.  
  2157.     mcPositionDontInvalidate    = $20;
  2158.  
  2159.  
  2160. TYPE
  2161.     mcFlags                                = LONGINT;
  2162.     MCActionFilterProcPtr = ProcPtr;  { FUNCTION MCActionFilter(mc: MovieController; VAR action: INTEGER; params: UNIV Ptr): BOOLEAN; }
  2163.  
  2164.     MCActionFilterWithRefConProcPtr = ProcPtr;  { FUNCTION MCActionFilterWithRefCon(mc: MovieController; action: INTEGER; params: UNIV Ptr; refCon: LONGINT): BOOLEAN; }
  2165.  
  2166.     MCActionFilterUPP = UniversalProcPtr;
  2167.     MCActionFilterWithRefConUPP = UniversalProcPtr;
  2168. {
  2169.     menu related stuff
  2170. }
  2171.  
  2172. CONST
  2173.     mcInfoUndoAvailable            = $01;
  2174.     mcInfoCutAvailable            = $02;
  2175.     mcInfoCopyAvailable            = $04;
  2176.     mcInfoPasteAvailable        = $08;
  2177.     mcInfoClearAvailable        = $10;
  2178.     mcInfoHasSound                = $20;
  2179.     mcInfoIsPlaying                = $40;
  2180.     mcInfoIsLooping                = $80;
  2181.     mcInfoIsInPalindrome        = $0100;
  2182.     mcInfoEditingEnabled        = $0200;
  2183.     mcInfoMovieIsInteractive    = $0400;
  2184.  
  2185. {  menu item codes }
  2186.     mcMenuUndo                    = 1;
  2187.     mcMenuCut                    = 3;
  2188.     mcMenuCopy                    = 4;
  2189.     mcMenuPaste                    = 5;
  2190.     mcMenuClear                    = 6;
  2191.  
  2192. {  target management  }
  2193. FUNCTION MCSetMovie(mc: MovieController; theMovie: Movie; movieWindow: WindowPtr; where: Point): ComponentResult;
  2194.     {$IFC NOT GENERATINGCFM}
  2195.     INLINE $2F3C, $000C, $0002, $7000, $A82A;
  2196.     {$ENDC}
  2197. FUNCTION MCGetIndMovie(mc: MovieController; index: INTEGER): Movie;
  2198.     {$IFC NOT GENERATINGCFM}
  2199.     INLINE $2F3C, $0002, $0005, $7000, $A82A;
  2200.     {$ENDC}
  2201. FUNCTION MCGetMovieExtended(mc: MovieController; index: INTEGER): Movie;
  2202.     {$IFC NOT GENERATINGCFM}
  2203.     INLINE $2F3C, $0002, $0005, $7000, $A82A;
  2204.     {$ENDC}
  2205. FUNCTION MCRemoveMovie(mc: MovieController): ComponentResult;
  2206.     {$IFC NOT GENERATINGCFM}
  2207.     INLINE $2F3C, $0000, $0006, $7000, $A82A;
  2208.     {$ENDC}
  2209. {  event handling etc.  }
  2210. FUNCTION MCIsPlayerEvent(mc: MovieController; {CONST}VAR e: EventRecord): ComponentResult;
  2211.     {$IFC NOT GENERATINGCFM}
  2212.     INLINE $2F3C, $0004, $0007, $7000, $A82A;
  2213.     {$ENDC}
  2214. {  obsolete. use MCSetActionFilterWithRefCon instead.  }
  2215. FUNCTION MCSetActionFilter(mc: MovieController; blob: MCActionFilterUPP): ComponentResult;
  2216.     {$IFC NOT GENERATINGCFM}
  2217.     INLINE $2F3C, $0004, $0008, $7000, $A82A;
  2218.     {$ENDC}
  2219. {
  2220.     proc is of the form:
  2221.         Boolean userPlayerFilter(MovieController mc, short *action, void *params) =
  2222.     proc returns TRUE if it handles the action, FALSE if not
  2223.     action is passed as a VAR so that it could be changed by filter (ick)
  2224.     this is consistent with the current dialog manager stuff
  2225.     params is any potential parameters that go with the action <triple ick> 
  2226.         such as set playback rate to xxx.
  2227. }
  2228. FUNCTION MCDoAction(mc: MovieController; action: INTEGER; params: UNIV Ptr): ComponentResult;
  2229.     {$IFC NOT GENERATINGCFM}
  2230.     INLINE $2F3C, $0006, $0009, $7000, $A82A;
  2231.     {$ENDC}
  2232. {  state type things  }
  2233. FUNCTION MCSetControllerAttached(mc: MovieController; attach: BOOLEAN): ComponentResult;
  2234.     {$IFC NOT GENERATINGCFM}
  2235.     INLINE $2F3C, $0002, $000A, $7000, $A82A;
  2236.     {$ENDC}
  2237. FUNCTION MCIsControllerAttached(mc: MovieController): ComponentResult;
  2238.     {$IFC NOT GENERATINGCFM}
  2239.     INLINE $2F3C, $0000, $000B, $7000, $A82A;
  2240.     {$ENDC}
  2241. FUNCTION MCSetControllerPort(mc: MovieController; gp: CGrafPtr): ComponentResult;
  2242.     {$IFC NOT GENERATINGCFM}
  2243.     INLINE $2F3C, $0004, $000C, $7000, $A82A;
  2244.     {$ENDC}
  2245. FUNCTION MCGetControllerPort(mc: MovieController): CGrafPtr;
  2246.     {$IFC NOT GENERATINGCFM}
  2247.     INLINE $2F3C, $0000, $000D, $7000, $A82A;
  2248.     {$ENDC}
  2249. FUNCTION MCSetVisible(mc: MovieController; visible: BOOLEAN): ComponentResult;
  2250.     {$IFC NOT GENERATINGCFM}
  2251.     INLINE $2F3C, $0002, $000E, $7000, $A82A;
  2252.     {$ENDC}
  2253. FUNCTION MCGetVisible(mc: MovieController): ComponentResult;
  2254.     {$IFC NOT GENERATINGCFM}
  2255.     INLINE $2F3C, $0000, $000F, $7000, $A82A;
  2256.     {$ENDC}
  2257. FUNCTION MCGetControllerBoundsRect(mc: MovieController; VAR bounds: Rect): ComponentResult;
  2258.     {$IFC NOT GENERATINGCFM}
  2259.     INLINE $2F3C, $0004, $0010, $7000, $A82A;
  2260.     {$ENDC}
  2261. FUNCTION MCSetControllerBoundsRect(mc: MovieController; {CONST}VAR bounds: Rect): ComponentResult;
  2262.     {$IFC NOT GENERATINGCFM}
  2263.     INLINE $2F3C, $0004, $0011, $7000, $A82A;
  2264.     {$ENDC}
  2265. FUNCTION MCGetControllerBoundsRgn(mc: MovieController): RgnHandle;
  2266.     {$IFC NOT GENERATINGCFM}
  2267.     INLINE $2F3C, $0000, $0012, $7000, $A82A;
  2268.     {$ENDC}
  2269. FUNCTION MCGetWindowRgn(mc: MovieController; w: WindowPtr): RgnHandle;
  2270.     {$IFC NOT GENERATINGCFM}
  2271.     INLINE $2F3C, $0004, $0013, $7000, $A82A;
  2272.     {$ENDC}
  2273. {  other stuff  }
  2274. FUNCTION MCMovieChanged(mc: MovieController; m: Movie): ComponentResult;
  2275.     {$IFC NOT GENERATINGCFM}
  2276.     INLINE $2F3C, $0004, $0014, $7000, $A82A;
  2277.     {$ENDC}
  2278. {
  2279.     called when the app has changed thing about the movie (like bounding rect) or rate. So that we
  2280.         can update our graphical (and internal) state accordingly.
  2281. }
  2282. FUNCTION MCSetDuration(mc: MovieController; duration: TimeValue): ComponentResult;
  2283.     {$IFC NOT GENERATINGCFM}
  2284.     INLINE $2F3C, $0004, $0015, $7000, $A82A;
  2285.     {$ENDC}
  2286. {
  2287.     duration to use for time slider -- will be reset next time MCMovieChanged is called
  2288.         or MCSetMovie is called
  2289. }
  2290. FUNCTION MCGetCurrentTime(mc: MovieController; VAR scale: TimeScale): TimeValue;
  2291.     {$IFC NOT GENERATINGCFM}
  2292.     INLINE $2F3C, $0004, $0016, $7000, $A82A;
  2293.     {$ENDC}
  2294. {
  2295.     returns the time value and the time scale it is on. if there are no movies, the
  2296.         time scale is passed back as 0. scale is an optional parameter
  2297.  
  2298. }
  2299. FUNCTION MCNewAttachedController(mc: MovieController; theMovie: Movie; w: WindowPtr; where: Point): ComponentResult;
  2300.     {$IFC NOT GENERATINGCFM}
  2301.     INLINE $2F3C, $000C, $0017, $7000, $A82A;
  2302.     {$ENDC}
  2303. {
  2304.     makes m the only movie attached to the controller. makes the controller visible.
  2305.     the window and where parameters are passed a long to MCSetMovie and behave as
  2306.     described there
  2307. }
  2308. FUNCTION MCDraw(mc: MovieController; w: WindowPtr): ComponentResult;
  2309.     {$IFC NOT GENERATINGCFM}
  2310.     INLINE $2F3C, $0004, $0018, $7000, $A82A;
  2311.     {$ENDC}
  2312. FUNCTION MCActivate(mc: MovieController; w: WindowPtr; activate: BOOLEAN): ComponentResult;
  2313.     {$IFC NOT GENERATINGCFM}
  2314.     INLINE $2F3C, $0006, $0019, $7000, $A82A;
  2315.     {$ENDC}
  2316. FUNCTION MCIdle(mc: MovieController): ComponentResult;
  2317.     {$IFC NOT GENERATINGCFM}
  2318.     INLINE $2F3C, $0000, $001A, $7000, $A82A;
  2319.     {$ENDC}
  2320. FUNCTION MCKey(mc: MovieController; key: SInt8; modifiers: LONGINT): ComponentResult;
  2321.     {$IFC NOT GENERATINGCFM}
  2322.     INLINE $2F3C, $0006, $001B, $7000, $A82A;
  2323.     {$ENDC}
  2324. FUNCTION MCClick(mc: MovieController; w: WindowPtr; where: Point; when: LONGINT; modifiers: LONGINT): ComponentResult;
  2325.     {$IFC NOT GENERATINGCFM}
  2326.     INLINE $2F3C, $0010, $001C, $7000, $A82A;
  2327.     {$ENDC}
  2328. {
  2329.     calls for editing
  2330. }
  2331. FUNCTION MCEnableEditing(mc: MovieController; enabled: BOOLEAN): ComponentResult;
  2332.     {$IFC NOT GENERATINGCFM}
  2333.     INLINE $2F3C, $0002, $001D, $7000, $A82A;
  2334.     {$ENDC}
  2335. FUNCTION MCIsEditingEnabled(mc: MovieController): LONGINT;
  2336.     {$IFC NOT GENERATINGCFM}
  2337.     INLINE $2F3C, $0000, $001E, $7000, $A82A;
  2338.     {$ENDC}
  2339. FUNCTION MCCopy(mc: MovieController): Movie;
  2340.     {$IFC NOT GENERATINGCFM}
  2341.     INLINE $2F3C, $0000, $001F, $7000, $A82A;
  2342.     {$ENDC}
  2343. FUNCTION MCCut(mc: MovieController): Movie;
  2344.     {$IFC NOT GENERATINGCFM}
  2345.     INLINE $2F3C, $0000, $0020, $7000, $A82A;
  2346.     {$ENDC}
  2347. FUNCTION MCPaste(mc: MovieController; srcMovie: Movie): ComponentResult;
  2348.     {$IFC NOT GENERATINGCFM}
  2349.     INLINE $2F3C, $0004, $0021, $7000, $A82A;
  2350.     {$ENDC}
  2351. FUNCTION MCClear(mc: MovieController): ComponentResult;
  2352.     {$IFC NOT GENERATINGCFM}
  2353.     INLINE $2F3C, $0000, $0022, $7000, $A82A;
  2354.     {$ENDC}
  2355. FUNCTION MCUndo(mc: MovieController): ComponentResult;
  2356.     {$IFC NOT GENERATINGCFM}
  2357.     INLINE $2F3C, $0000, $0023, $7000, $A82A;
  2358.     {$ENDC}
  2359. {
  2360.  *    somewhat special stuff
  2361. }
  2362. FUNCTION MCPositionController(mc: MovieController; {CONST}VAR movieRect: Rect; {CONST}VAR controllerRect: Rect; someFlags: LONGINT): ComponentResult;
  2363.     {$IFC NOT GENERATINGCFM}
  2364.     INLINE $2F3C, $000C, $0024, $7000, $A82A;
  2365.     {$ENDC}
  2366. FUNCTION MCGetControllerInfo(mc: MovieController; VAR someFlags: LONGINT): ComponentResult;
  2367.     {$IFC NOT GENERATINGCFM}
  2368.     INLINE $2F3C, $0004, $0025, $7000, $A82A;
  2369.     {$ENDC}
  2370. FUNCTION MCSetClip(mc: MovieController; theClip: RgnHandle; movieClip: RgnHandle): ComponentResult;
  2371.     {$IFC NOT GENERATINGCFM}
  2372.     INLINE $2F3C, $0008, $0028, $7000, $A82A;
  2373.     {$ENDC}
  2374. FUNCTION MCGetClip(mc: MovieController; VAR theClip: RgnHandle; VAR movieClip: RgnHandle): ComponentResult;
  2375.     {$IFC NOT GENERATINGCFM}
  2376.     INLINE $2F3C, $0008, $0029, $7000, $A82A;
  2377.     {$ENDC}
  2378. FUNCTION MCDrawBadge(mc: MovieController; movieRgn: RgnHandle; VAR badgeRgn: RgnHandle): ComponentResult;
  2379.     {$IFC NOT GENERATINGCFM}
  2380.     INLINE $2F3C, $0008, $002A, $7000, $A82A;
  2381.     {$ENDC}
  2382. {$ENDC}
  2383. {$IFC FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED }
  2384. FUNCTION MCSetUpEditMenu(mc: MovieController; modifiers: LONGINT; mh: MenuHandle): ComponentResult;
  2385.     {$IFC NOT GENERATINGCFM}
  2386.     INLINE $2F3C, $0008, $002B, $7000, $A82A;
  2387.     {$ENDC}
  2388. {$ENDC}
  2389. {$IFC FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE }
  2390. FUNCTION MCGetMenuString(mc: MovieController; modifiers: LONGINT; item: INTEGER; VAR aString: Str255): ComponentResult;
  2391.     {$IFC NOT GENERATINGCFM}
  2392.     INLINE $2F3C, $000A, $002C, $7000, $A82A;
  2393.     {$ENDC}
  2394. FUNCTION MCSetActionFilterWithRefCon(mc: MovieController; blob: MCActionFilterWithRefConUPP; refCon: LONGINT): ComponentResult;
  2395.     {$IFC NOT GENERATINGCFM}
  2396.     INLINE $2F3C, $0008, $002D, $7000, $A82A;
  2397.     {$ENDC}
  2398. FUNCTION MCPtInController(mc: MovieController; thePt: Point; VAR inController: BOOLEAN): ComponentResult;
  2399.     {$IFC NOT GENERATINGCFM}
  2400.     INLINE $2F3C, $0008, $002E, $7000, $A82A;
  2401.     {$ENDC}
  2402.  
  2403. CONST
  2404.     kMCSetMovieSelect            = $02;
  2405.     kMCGetIndMovieSelect        = $05;
  2406.     kMCGetMovieExtendedSelect    = $05;
  2407.     kMCRemoveMovieSelect        = $06;
  2408.     kMCIsPlayerEventSelect        = $07;
  2409.     kMCSetActionFilterSelect    = $08;
  2410.     kMCDoActionSelect            = $09;
  2411.     kMCSetControllerAttachedSelect = $0A;
  2412.     kMCIsControllerAttachedSelect = $0B;
  2413.     kMCSetControllerPortSelect    = $0C;
  2414.     kMCGetControllerPortSelect    = $0D;
  2415.     kMCSetVisibleSelect            = $0E;
  2416.     kMCGetVisibleSelect            = $0F;
  2417.     kMCGetControllerBoundsRectSelect = $10;
  2418.     kMCSetControllerBoundsRectSelect = $11;
  2419.     kMCGetControllerBoundsRgnSelect = $12;
  2420.     kMCGetWindowRgnSelect        = $13;
  2421.     kMCMovieChangedSelect        = $14;
  2422.     kMCSetDurationSelect        = $15;
  2423.     kMCGetCurrentTimeSelect        = $16;
  2424.     kMCNewAttachedControllerSelect = $17;
  2425.     kMCDrawSelect                = $18;
  2426.     kMCActivateSelect            = $19;
  2427.     kMCIdleSelect                = $1A;
  2428.     kMCKeySelect                = $1B;
  2429.     kMCClickSelect                = $1C;
  2430.     kMCEnableEditingSelect        = $1D;
  2431.     kMCIsEditingEnabledSelect    = $1E;
  2432.     kMCCopySelect                = $1F;
  2433.     kMCCutSelect                = $20;
  2434.     kMCPasteSelect                = $21;
  2435.     kMCClearSelect                = $22;
  2436.     kMCUndoSelect                = $23;
  2437.     kMCPositionControllerSelect    = $24;
  2438.     kMCGetControllerInfoSelect    = $25;
  2439.     kMCSetClipSelect            = $28;
  2440.     kMCGetClipSelect            = $29;
  2441.     kMCDrawBadgeSelect            = $2A;
  2442.     kMCSetUpEditMenuSelect        = $2B;
  2443.     kMCGetMenuStringSelect        = $2C;
  2444.     kMCSetActionFilterWithRefConSelect = $2D;
  2445.     kMCPtInControllerSelect        = $2E;
  2446.  
  2447. {
  2448. ***************************************
  2449. *                                        *
  2450. *          T  I  M  E  B  A  S  E            *
  2451. *                                        *
  2452. ***************************************
  2453. }
  2454. FUNCTION NewTimeBase: TimeBase;
  2455.     {$IFC NOT GENERATINGCFM}
  2456.     INLINE $303C, $00A5, $AAAA;
  2457.     {$ENDC}
  2458. PROCEDURE DisposeTimeBase(tb: TimeBase);
  2459.     {$IFC NOT GENERATINGCFM}
  2460.     INLINE $303C, $00B6, $AAAA;
  2461.     {$ENDC}
  2462. FUNCTION GetTimeBaseTime(tb: TimeBase; s: TimeScale; VAR tr: TimeRecord): TimeValue;
  2463.     {$IFC NOT GENERATINGCFM}
  2464.     INLINE $303C, $00A6, $AAAA;
  2465.     {$ENDC}
  2466. PROCEDURE SetTimeBaseTime(tb: TimeBase; {CONST}VAR tr: TimeRecord);
  2467.     {$IFC NOT GENERATINGCFM}
  2468.     INLINE $303C, $00A7, $AAAA;
  2469.     {$ENDC}
  2470. PROCEDURE SetTimeBaseValue(tb: TimeBase; t: TimeValue; s: TimeScale);
  2471.     {$IFC NOT GENERATINGCFM}
  2472.     INLINE $303C, $00A8, $AAAA;
  2473.     {$ENDC}
  2474. FUNCTION GetTimeBaseRate(tb: TimeBase): Fixed;
  2475.     {$IFC NOT GENERATINGCFM}
  2476.     INLINE $303C, $00A9, $AAAA;
  2477.     {$ENDC}
  2478. PROCEDURE SetTimeBaseRate(tb: TimeBase; r: Fixed);
  2479.     {$IFC NOT GENERATINGCFM}
  2480.     INLINE $303C, $00AA, $AAAA;
  2481.     {$ENDC}
  2482. FUNCTION GetTimeBaseStartTime(tb: TimeBase; s: TimeScale; VAR tr: TimeRecord): TimeValue;
  2483.     {$IFC NOT GENERATINGCFM}
  2484.     INLINE $303C, $00AB, $AAAA;
  2485.     {$ENDC}
  2486. PROCEDURE SetTimeBaseStartTime(tb: TimeBase; {CONST}VAR tr: TimeRecord);
  2487.     {$IFC NOT GENERATINGCFM}
  2488.     INLINE $303C, $00AC, $AAAA;
  2489.     {$ENDC}
  2490. FUNCTION GetTimeBaseStopTime(tb: TimeBase; s: TimeScale; VAR tr: TimeRecord): TimeValue;
  2491.     {$IFC NOT GENERATINGCFM}
  2492.     INLINE $303C, $00AD, $AAAA;
  2493.     {$ENDC}
  2494. PROCEDURE SetTimeBaseStopTime(tb: TimeBase; {CONST}VAR tr: TimeRecord);
  2495.     {$IFC NOT GENERATINGCFM}
  2496.     INLINE $303C, $00AE, $AAAA;
  2497.     {$ENDC}
  2498. FUNCTION GetTimeBaseFlags(tb: TimeBase): LONGINT;
  2499.     {$IFC NOT GENERATINGCFM}
  2500.     INLINE $303C, $00B1, $AAAA;
  2501.     {$ENDC}
  2502. PROCEDURE SetTimeBaseFlags(tb: TimeBase; timeBaseFlags: LONGINT);
  2503.     {$IFC NOT GENERATINGCFM}
  2504.     INLINE $303C, $00B2, $AAAA;
  2505.     {$ENDC}
  2506. PROCEDURE SetTimeBaseMasterTimeBase(slave: TimeBase; master: TimeBase; {CONST}VAR slaveZero: TimeRecord);
  2507.     {$IFC NOT GENERATINGCFM}
  2508.     INLINE $303C, $00B4, $AAAA;
  2509.     {$ENDC}
  2510. FUNCTION GetTimeBaseMasterTimeBase(tb: TimeBase): TimeBase;
  2511.     {$IFC NOT GENERATINGCFM}
  2512.     INLINE $303C, $00AF, $AAAA;
  2513.     {$ENDC}
  2514. PROCEDURE SetTimeBaseMasterClock(slave: TimeBase; clockMeister: Component; {CONST}VAR slaveZero: TimeRecord);
  2515.     {$IFC NOT GENERATINGCFM}
  2516.     INLINE $303C, $00B3, $AAAA;
  2517.     {$ENDC}
  2518. FUNCTION GetTimeBaseMasterClock(tb: TimeBase): ComponentInstance;
  2519.     {$IFC NOT GENERATINGCFM}
  2520.     INLINE $303C, $00B0, $AAAA;
  2521.     {$ENDC}
  2522. PROCEDURE ConvertTime(VAR inout: TimeRecord; newBase: TimeBase);
  2523.     {$IFC NOT GENERATINGCFM}
  2524.     INLINE $303C, $00B5, $AAAA;
  2525.     {$ENDC}
  2526. PROCEDURE ConvertTimeScale(VAR inout: TimeRecord; newScale: TimeScale);
  2527.     {$IFC NOT GENERATINGCFM}
  2528.     INLINE $303C, $00B7, $AAAA;
  2529.     {$ENDC}
  2530. PROCEDURE AddTime(VAR dst: TimeRecord; {CONST}VAR src: TimeRecord);
  2531.     {$IFC NOT GENERATINGCFM}
  2532.     INLINE $303C, $010C, $AAAA;
  2533.     {$ENDC}
  2534. PROCEDURE SubtractTime(VAR dst: TimeRecord; {CONST}VAR src: TimeRecord);
  2535.     {$IFC NOT GENERATINGCFM}
  2536.     INLINE $303C, $010D, $AAAA;
  2537.     {$ENDC}
  2538. FUNCTION GetTimeBaseStatus(tb: TimeBase; VAR unpinnedTime: TimeRecord): LONGINT;
  2539.     {$IFC NOT GENERATINGCFM}
  2540.     INLINE $303C, $010B, $AAAA;
  2541.     {$ENDC}
  2542. PROCEDURE SetTimeBaseZero(tb: TimeBase; VAR zero: TimeRecord);
  2543.     {$IFC NOT GENERATINGCFM}
  2544.     INLINE $303C, $0128, $AAAA;
  2545.     {$ENDC}
  2546. FUNCTION GetTimeBaseEffectiveRate(tb: TimeBase): Fixed;
  2547.     {$IFC NOT GENERATINGCFM}
  2548.     INLINE $303C, $0124, $AAAA;
  2549.     {$ENDC}
  2550. {
  2551. ***************************************
  2552. *                                        *
  2553. *          C  A  L  L  B  A  C  K             *
  2554. *                                        *
  2555. ***************************************
  2556. }
  2557. FUNCTION NewCallBack(tb: TimeBase; cbType: INTEGER): QTCallBack;
  2558.     {$IFC NOT GENERATINGCFM}
  2559.     INLINE $303C, $00EB, $AAAA;
  2560.     {$ENDC}
  2561. PROCEDURE DisposeCallBack(cb: QTCallBack);
  2562.     {$IFC NOT GENERATINGCFM}
  2563.     INLINE $303C, $00EC, $AAAA;
  2564.     {$ENDC}
  2565. FUNCTION GetCallBackType(cb: QTCallBack): INTEGER;
  2566.     {$IFC NOT GENERATINGCFM}
  2567.     INLINE $303C, $00ED, $AAAA;
  2568.     {$ENDC}
  2569. FUNCTION GetCallBackTimeBase(cb: QTCallBack): TimeBase;
  2570.     {$IFC NOT GENERATINGCFM}
  2571.     INLINE $303C, $00EE, $AAAA;
  2572.     {$ENDC}
  2573. FUNCTION CallMeWhen(cb: QTCallBack; callBackProc: QTCallBackUPP; refCon: LONGINT; param1: LONGINT; param2: LONGINT; param3: LONGINT): OSErr;
  2574.     {$IFC NOT GENERATINGCFM}
  2575.     INLINE $303C, $00B8, $AAAA;
  2576.     {$ENDC}
  2577. PROCEDURE CancelCallBack(cb: QTCallBack);
  2578.     {$IFC NOT GENERATINGCFM}
  2579.     INLINE $303C, $00B9, $AAAA;
  2580.     {$ENDC}
  2581. {
  2582. ***************************************
  2583. *                                        *
  2584. *          C L O C K   C A L L B A C K      *
  2585. *                S U P P O R T              *
  2586. *                                        *
  2587. ***************************************
  2588. }
  2589. FUNCTION AddCallBackToTimeBase(cb: QTCallBack): OSErr;
  2590.     {$IFC NOT GENERATINGCFM}
  2591.     INLINE $303C, $0129, $AAAA;
  2592.     {$ENDC}
  2593. FUNCTION RemoveCallBackFromTimeBase(cb: QTCallBack): OSErr;
  2594.     {$IFC NOT GENERATINGCFM}
  2595.     INLINE $303C, $012A, $AAAA;
  2596.     {$ENDC}
  2597. FUNCTION GetFirstCallBack(tb: TimeBase): QTCallBack;
  2598.     {$IFC NOT GENERATINGCFM}
  2599.     INLINE $303C, $012B, $AAAA;
  2600.     {$ENDC}
  2601. FUNCTION GetNextCallBack(cb: QTCallBack): QTCallBack;
  2602.     {$IFC NOT GENERATINGCFM}
  2603.     INLINE $303C, $012C, $AAAA;
  2604.     {$ENDC}
  2605. PROCEDURE ExecuteCallBack(cb: QTCallBack);
  2606.     {$IFC NOT GENERATINGCFM}
  2607.     INLINE $303C, $012D, $AAAA;
  2608.     {$ENDC}
  2609. {
  2610. ***************************************
  2611. *                                        *
  2612. *          S Y N C    T A S K S              *
  2613. *                S U P P O R T              *
  2614. *                                        *
  2615. ***************************************
  2616. }
  2617. FUNCTION QueueSyncTask(task: QTSyncTaskPtr): OSErr;
  2618.     {$IFC NOT GENERATINGCFM}
  2619.     INLINE $303C, $0203, $AAAA;
  2620.     {$ENDC}
  2621. FUNCTION DequeueSyncTask(qElem: QTSyncTaskPtr): OSErr;
  2622.     {$IFC NOT GENERATINGCFM}
  2623.     INLINE $303C, $0204, $AAAA;
  2624.     {$ENDC}
  2625. {  UPP call backs  }
  2626.  
  2627. CONST
  2628.     uppMovieRgnCoverProcInfo = $00000FE0;
  2629.     uppMovieProgressProcInfo = $0000FAE0;
  2630.     uppMovieDrawingCompleteProcInfo = $000003E0;
  2631.     uppTrackTransferProcInfo = $000003E0;
  2632.     uppGetMovieProcInfo = $00003FE0;
  2633.     uppMoviePreviewCallOutProcInfo = $000000D0;
  2634.     uppMoviesErrorProcInfo = $00000380;
  2635.     uppTextMediaProcInfo = $00003FE0;
  2636.     uppQTCallBackProcInfo = $000003C0;
  2637.     uppQTSyncTaskProcInfo = $000000C0;
  2638.     uppMCActionFilterProcInfo = $00000FD0;
  2639.     uppMCActionFilterWithRefConProcInfo = $00003ED0;
  2640.  
  2641. FUNCTION NewMovieRgnCoverProc(userRoutine: MovieRgnCoverProcPtr): MovieRgnCoverUPP;
  2642.     {$IFC NOT GENERATINGCFM }
  2643.     INLINE $2E9F;
  2644.     {$ENDC}
  2645.  
  2646. FUNCTION NewMovieProgressProc(userRoutine: MovieProgressProcPtr): MovieProgressUPP;
  2647.     {$IFC NOT GENERATINGCFM }
  2648.     INLINE $2E9F;
  2649.     {$ENDC}
  2650.  
  2651. FUNCTION NewMovieDrawingCompleteProc(userRoutine: MovieDrawingCompleteProcPtr): MovieDrawingCompleteUPP;
  2652.     {$IFC NOT GENERATINGCFM }
  2653.     INLINE $2E9F;
  2654.     {$ENDC}
  2655.  
  2656. FUNCTION NewTrackTransferProc(userRoutine: TrackTransferProcPtr): TrackTransferUPP;
  2657.     {$IFC NOT GENERATINGCFM }
  2658.     INLINE $2E9F;
  2659.     {$ENDC}
  2660.  
  2661. FUNCTION NewGetMovieProc(userRoutine: GetMovieProcPtr): GetMovieUPP;
  2662.     {$IFC NOT GENERATINGCFM }
  2663.     INLINE $2E9F;
  2664.     {$ENDC}
  2665.  
  2666. FUNCTION NewMoviePreviewCallOutProc(userRoutine: MoviePreviewCallOutProcPtr): MoviePreviewCallOutUPP;
  2667.     {$IFC NOT GENERATINGCFM }
  2668.     INLINE $2E9F;
  2669.     {$ENDC}
  2670.  
  2671. FUNCTION NewMoviesErrorProc(userRoutine: MoviesErrorProcPtr): MoviesErrorUPP;
  2672.     {$IFC NOT GENERATINGCFM }
  2673.     INLINE $2E9F;
  2674.     {$ENDC}
  2675.  
  2676. FUNCTION NewTextMediaProc(userRoutine: TextMediaProcPtr): TextMediaUPP;
  2677.     {$IFC NOT GENERATINGCFM }
  2678.     INLINE $2E9F;
  2679.     {$ENDC}
  2680.  
  2681. FUNCTION NewQTCallBackProc(userRoutine: QTCallBackProcPtr): QTCallBackUPP;
  2682.     {$IFC NOT GENERATINGCFM }
  2683.     INLINE $2E9F;
  2684.     {$ENDC}
  2685.  
  2686. FUNCTION NewQTSyncTaskProc(userRoutine: QTSyncTaskProcPtr): QTSyncTaskUPP;
  2687.     {$IFC NOT GENERATINGCFM }
  2688.     INLINE $2E9F;
  2689.     {$ENDC}
  2690.  
  2691. FUNCTION NewMCActionFilterProc(userRoutine: MCActionFilterProcPtr): MCActionFilterUPP;
  2692.     {$IFC NOT GENERATINGCFM }
  2693.     INLINE $2E9F;
  2694.     {$ENDC}
  2695.  
  2696. FUNCTION NewMCActionFilterWithRefConProc(userRoutine: MCActionFilterWithRefConProcPtr): MCActionFilterWithRefConUPP;
  2697.     {$IFC NOT GENERATINGCFM }
  2698.     INLINE $2E9F;
  2699.     {$ENDC}
  2700.  
  2701. FUNCTION CallMovieRgnCoverProc(theMovie: Movie; changedRgn: RgnHandle; refcon: LONGINT; userRoutine: MovieRgnCoverUPP): OSErr;
  2702.     {$IFC NOT GENERATINGCFM}
  2703.     INLINE $205F, $4E90;
  2704.     {$ENDC}
  2705.  
  2706. FUNCTION CallMovieProgressProc(theMovie: Movie; message: INTEGER; whatOperation: INTEGER; percentDone: Fixed; refcon: LONGINT; userRoutine: MovieProgressUPP): OSErr;
  2707.     {$IFC NOT GENERATINGCFM}
  2708.     INLINE $205F, $4E90;
  2709.     {$ENDC}
  2710.  
  2711. FUNCTION CallMovieDrawingCompleteProc(theMovie: Movie; refCon: LONGINT; userRoutine: MovieDrawingCompleteUPP): OSErr;
  2712.     {$IFC NOT GENERATINGCFM}
  2713.     INLINE $205F, $4E90;
  2714.     {$ENDC}
  2715.  
  2716. FUNCTION CallTrackTransferProc(t: Track; refCon: LONGINT; userRoutine: TrackTransferUPP): OSErr;
  2717.     {$IFC NOT GENERATINGCFM}
  2718.     INLINE $205F, $4E90;
  2719.     {$ENDC}
  2720.  
  2721. FUNCTION CallGetMovieProc(offset: LONGINT; size: LONGINT; dataPtr: UNIV Ptr; refCon: UNIV Ptr; userRoutine: GetMovieUPP): OSErr;
  2722.     {$IFC NOT GENERATINGCFM}
  2723.     INLINE $205F, $4E90;
  2724.     {$ENDC}
  2725.  
  2726. FUNCTION CallMoviePreviewCallOutProc(refcon: LONGINT; userRoutine: MoviePreviewCallOutUPP): BOOLEAN;
  2727.     {$IFC NOT GENERATINGCFM}
  2728.     INLINE $205F, $4E90;
  2729.     {$ENDC}
  2730.  
  2731. PROCEDURE CallMoviesErrorProc(theErr: OSErr; refcon: LONGINT; userRoutine: MoviesErrorUPP);
  2732.     {$IFC NOT GENERATINGCFM}
  2733.     INLINE $205F, $4E90;
  2734.     {$ENDC}
  2735.  
  2736. FUNCTION CallTextMediaProc(theText: Handle; theMovie: Movie; VAR displayFlag: INTEGER; refcon: LONGINT; userRoutine: TextMediaUPP): OSErr;
  2737.     {$IFC NOT GENERATINGCFM}
  2738.     INLINE $205F, $4E90;
  2739.     {$ENDC}
  2740.  
  2741. PROCEDURE CallQTCallBackProc(cb: QTCallBack; refCon: LONGINT; userRoutine: QTCallBackUPP);
  2742.     {$IFC NOT GENERATINGCFM}
  2743.     INLINE $205F, $4E90;
  2744.     {$ENDC}
  2745.  
  2746. PROCEDURE CallQTSyncTaskProc(task: UNIV Ptr; userRoutine: QTSyncTaskUPP);
  2747.     {$IFC NOT GENERATINGCFM}
  2748.     INLINE $205F, $4E90;
  2749.     {$ENDC}
  2750.  
  2751. FUNCTION CallMCActionFilterProc(mc: MovieController; VAR action: INTEGER; params: UNIV Ptr; userRoutine: MCActionFilterUPP): BOOLEAN;
  2752.     {$IFC NOT GENERATINGCFM}
  2753.     INLINE $205F, $4E90;
  2754.     {$ENDC}
  2755.  
  2756. FUNCTION CallMCActionFilterWithRefConProc(mc: MovieController; action: INTEGER; params: UNIV Ptr; refCon: LONGINT; userRoutine: MCActionFilterWithRefConUPP): BOOLEAN;
  2757.     {$IFC NOT GENERATINGCFM}
  2758.     INLINE $205F, $4E90;
  2759.     {$ENDC}
  2760. {$ENDC}
  2761. {$ALIGN RESET}
  2762. {$POP}
  2763.  
  2764. {$SETC UsingIncludes := MoviesIncludes}
  2765.  
  2766. {$ENDC} {__MOVIES__}
  2767.  
  2768. {$IFC NOT UsingIncludes}
  2769.  END.
  2770. {$ENDC}
  2771.